如何在.NET中获取数组的唯一值?

6

假设我有这个数组: MyArray(0)="aaa" MyArray(1)="bbb" MyArray(2)="aaa"

是否有一个.NET函数可以给我唯一的值? 我想要像这样的函数输出: OutputArray(0)="aaa" OutputArray(1)="bbb"

4个回答

9

假设你有 .Net 3.5/LINQ:

string[] OutputArray = MyArray.Distinct().ToArray();

8
一种解决方案是使用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
你可以使用字典以键值对的方式添加它们,添加时检查键是否已经存在。
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
使用.NET 3.5中包含的HashSet类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接