C#数组,如何使数组中的数据彼此不同? 例如C#数组,如何使数组中的数据彼此不同?
string[] a = {"a","b","a","c","b","b","c","a"};
如何让
string[]b = {"a","b","c"}
C#数组,如何使数组中的数据彼此不同? 例如C#数组,如何使数组中的数据彼此不同?
string[] a = {"a","b","a","c","b","b","c","a"};
如何让
string[]b = {"a","b","c"}
最简单的方法是LINQ Distinct()
命令:
var b = a.Distinct().ToArray();
你可能要考虑使用Set而不是数组。集合不能包含重复项,因此添加第二个“a”将不起作用。这样你的角色集合将永远不会有重复,你不需要对它做任何后期处理。
开头的数组是IEnumerable<T>
。 IEnumerable<T>
具有可用于操纵列表转换成其不同的值
var distinctList = list.Distinct();
最后一个Distinct()
method,IEnumerable<T>
具有ToArray()
方法:
var b = distinctList.ToArray();
var list = new HashSet<string> { };
list.Add("a");
list.Add("a");
var countItems = list.Count(); //in this case countItems=1
我想使用C#字典是更好的我可以按价值排序LINQ
string [] b = a.Distinct(); – Rony 2010-11-12 08:44:01
@Rony - 'Distinct'确实给出了一个数组... – 2010-11-12 09:09:37
不同的返回IEnumerable。您需要ToArray()将其转换为数组。 –
arviman
2011-06-23 17:50:31