10

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

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

怎么获得

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

5 回答 5

20

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

var b = a.Distinct().ToArray();
于 2010-11-12T08:39:35.347 回答
6

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

于 2010-11-12T08:42:45.423 回答
2
var list = new HashSet<string> { };
list.Add("a");
list.Add("a");

var countItems = list.Count(); //in this case countItems=1
于 2010-11-12T08:47:04.413 回答
1

您开始使用的数组是IEnumerable<T>. IEnumerable<T>有一种Distinct() 方法可用于将列表操作为不同的值

var distinctList = list.Distinct();

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

var b = distinctList.ToArray();
于 2010-11-12T08:46:12.040 回答
0

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

于 2010-11-12T13:52:59.793 回答