C # Array, как сделать данные в массиве отличными друг от друга? - PullRequest
10 голосов
/ 12 ноября 2010

C # Array, как сделать данные в массиве отличными друг от друга? Например

string[] a = {"a","b","a","c","b","b","c","a"}; 

как достать

string[]b = {"a","b","c"}

Ответы [ 5 ]

20 голосов
/ 12 ноября 2010

Самый простой способ - это команда LINQ Distinct():

var b = a.Distinct().ToArray();
6 голосов
/ 12 ноября 2010

Возможно, вы захотите использовать Set вместо массива. Наборы не могут содержать дубликаты, поэтому добавление второго «а» не будет иметь никакого эффекта. Таким образом, ваша коллекция символов всегда не будет содержать дубликатов, и вам не придется выполнять какую-либо постобработку.

2 голосов
/ 12 ноября 2010
    var list = new HashSet<string> { };
    list.Add("a");
    list.Add("a");

    var countItems = list.Count(); //in this case countItems=1
1 голос
/ 12 ноября 2010

Массив, с которого вы начинаете, равен IEnumerable<T>.IEnumerable<T> имеет Distinct() метод , который можно использовать для манипулирования списком с его различными значениями

var distinctList = list.Distinct();

Наконец, IEnumerable<T> имеет метод ToArray():

var b = distinctList.ToArray();
0 голосов
/ 12 ноября 2010

Я думаю, что использование c # Dictionary - лучший способ, и я могу сортировать по значению, используя LINQ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...