скажем, у меня есть этот массив: MyArray (0) = "ааа" MyArray (1) = "БББ" MyArray (2) = "ааа"
Есть ли функция .net, которая может дать мне уникальные значения? Я хотел бы что-то вроде этого в качестве вывода функции: OutputArray (0) = "ааа" OutputArray (1) = "БББ"
Если у вас есть .Net 3.5 / LINQ:
string[] OutputArray = MyArray.Distinct().ToArray();
Решением может быть использование 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
Вы можете использовать словарь, чтобы добавить их с ключом, и при добавлении проверить, существует ли ключ.
string[] myarray = new string[] { "aaa", "bbb", "aaa" }; Dictionary mydict = new Dictionary(); foreach (string s in myarray) { if (!mydict.ContainsKey(s)) mydict.Add(s, s); }
Используйте класс HashSet, включенный в .NET 3.5.