Как я могу получить уникальные значения массива в .net? - PullRequest
5 голосов
/ 17 сентября 2008

скажем, у меня есть этот массив: MyArray (0) = "ааа" MyArray (1) = "БББ" MyArray (2) = "ааа"

Есть ли функция .net, которая может дать мне уникальные значения? Я хотел бы что-то вроде этого в качестве вывода функции: OutputArray (0) = "ааа" OutputArray (1) = "БББ"

Ответы [ 4 ]

8 голосов
/ 17 сентября 2008

Если у вас есть .Net 3.5 / LINQ:

string[] OutputArray = MyArray.Distinct().ToArray();
8 голосов
/ 17 сентября 2008

Решением может быть использование LINQ, как в следующем примере:

int[] test = { 1, 2, 1, 3, 3, 4, 5 };
var res = (from t in test select t).Distinct<int>();
foreach (var i in res)
{
    Console.WriteLine(i);
}

Это напечатало бы ожидаемое:

1
2
3
4
5
2 голосов
/ 17 сентября 2008

Вы можете использовать словарь, чтобы добавить их с ключом, и при добавлении проверить, существует ли ключ.

string[] myarray = new string[] { "aaa", "bbb", "aaa" };
            Dictionary mydict = new Dictionary();
            foreach (string s in myarray) {
                if (!mydict.ContainsKey(s)) mydict.Add(s, s);
            }
1 голос
/ 17 сентября 2008

Используйте класс HashSet, включенный в .NET 3.5.

...