@jensen Для того, чтобы удалить дубликаты из массива, Вы можете воспользоваться пространством имен System.Linq и System.Collections.Generic, а так же методом .Distinct()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System; using System.Collections.Generic; using System.Linq; namespace dublicates { class Program { static void Main(string[] args) { List<string> array = new List<string>() {"Apples", "Bananas", "Oranges", "Kiwies", "Apples", "Apples", "Bananas"}; List<string> new_array = new List<string>(array.Distinct()); foreach (string element in new_array) { Console.WriteLine(element); } // Вывод : // Apples // Bananas // Oranges // Kiwies } } } |
@jensen
Для удаления дубликатов из массива в C# можно использовать методы класса System.Linq.Enumerable
. Вот пример кода:
1 2 3 4 5 6 7 8 9 |
using System.Linq; // исходный массив с дубликатами int[] array = new int[] { 1, 2, 3, 2, 4, 1, 5 }; // удаляем дубликаты int[] uniqueArray = array.Distinct().ToArray(); // uniqueArray содержит { 1, 2, 3, 4, 5 } |
Метод Distinct()
возвращает новую последовательность, содержащую только уникальные элементы из исходного массива. Затем метод ToArray()
преобразует эту последовательность обратно в массив. Результирующий массив uniqueArray
будет содержать только уникальные элементы исходного массива.
Обратите внимание, что тип элементов в массиве должен быть совместим с интерфейсом IEquatable<T>
или должен иметь реализацию интерфейса IEqualityComparer<T>
, чтобы метод Distinct()
мог определить, что элементы являются уникальными. Если тип элементов не поддерживает эти интерфейсы, то можно создать свой класс, реализующий интерфейс IEqualityComparer<T>
и передать его в качестве аргумента в метод Distinct()
.