Как я могу получить уникальные значения массива в .net?
Вопрос
Скажем, у меня есть этот массив:Myarray (0) = "aaa" myarray (1) = "bbb" myarray (2) = "aaa"
Есть ли функция .net, которая может дать мне уникальные значения?Мне бы хотелось что-то вроде этого в качестве вывода функции:OutputArray (0) = "aaa" outputArray (1) = "bbb"
Решение
Предполагая, что у вас есть .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.
Не связан с StackOverflow