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

时间:2020-03-05 18:58:53  来源:igfitidea点击:

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

有一个.net函数可以给我唯一的值吗?我想要这样的东西作为函数的输出:
OutputArray(0)=" aaa"
OutputArray(1)=" bbb"

解决方案

回答

我们可以使用字典向它们添加密钥,然后在添加它们时检查密钥是否已存在。

string[] myarray = new string[] { "aaa", "bbb", "aaa" };
            Dictionary mydict = new Dictionary();
            foreach (string s in myarray) {
                if (!mydict.ContainsKey(s)) mydict.Add(s, s);
            }

回答

使用.NET 3.5中包含的HashSet类。

回答

一个解决方案可能是使用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

回答

假设我们拥有.Net 3.5 / LINQ:

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