C#数组,如何使数组中的数据彼此不同?例如
string[] a = {"a","b","a","c","b","b","c","a"};
怎么获得
string[]b = {"a","b","c"}
C#数组,如何使数组中的数据彼此不同?例如
string[] a = {"a","b","a","c","b","b","c","a"};
怎么获得
string[]b = {"a","b","c"}
最简单的方法是 LINQDistinct()
命令:
var b = a.Distinct().ToArray();
您可能需要考虑使用Set而不是数组。集合不能包含重复项,因此添加第二个“a”将无效。这样,您的字符集合将始终不包含重复项,并且您不必对其进行任何后期处理。
var list = new HashSet<string> { };
list.Add("a");
list.Add("a");
var countItems = list.Count(); //in this case countItems=1
您开始使用的数组是IEnumerable<T>
. IEnumerable<T>
有一种Distinct()
方法可用于将列表操作为不同的值
var distinctList = list.Distinct();
最后,IEnumerable<T>
有一个ToArray()
方法:
var b = distinctList.ToArray();
我认为使用 c# Dictionary 是更好的方法,我可以使用LINQ按值排序