C#Array,如何使数组中的数据彼此不同?

时间:2010-11-12 08:37:22

标签: c# arrays distinct-values

C#Array,如何使数组中的数据彼此不同? 例如

string[] a = {"a","b","a","c","b","b","c","a"}; 

如何获得

string[]b = {"a","b","c"}

5 个答案:

答案 0 :(得分:20)

最简单的方法是LINQ Distinct()命令:

var b = a.Distinct().ToArray();

答案 1 :(得分:6)

您可能需要考虑使用Set而不是数组。集不能包含重复项,因此添加第二个“a”将不起作用。这样你的角色集合将始终不包含任何重复项,您不必对其进行任何后期处理。

答案 2 :(得分:2)

    var list = new HashSet<string> { };
    list.Add("a");
    list.Add("a");

    var countItems = list.Count(); //in this case countItems=1

答案 3 :(得分:1)

您开始使用的数组是IEnumerable<T>IEnumerable<T>Distinct() method,可用于将列表操作为其不同的值

var distinctList = list.Distinct();

最后,IEnumerable<T>有一个ToArray()方法:

var b = distinctList.ToArray();

答案 4 :(得分:0)

我认为使用c#Dictionary是更好的方法,我可以使用LINQ

按值排序