C#Array,如何使数组中的数据彼此不同? 例如
string[] a = {"a","b","a","c","b","b","c","a"};
如何获得
string[]b = {"a","b","c"}
答案 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
按值排序