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

C# Array, How to make data in an array distinct from each other?

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

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

如何获得

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

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

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


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


1
2
3
4
5
    var list = new HashSet<string> { };
    list.Add("a");
    list.Add("a");

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

您首先使用的数组是IEnumerableIEnumerable有一个Distinct()方法,可用于将列表操作为其不同的值。

1
var distinctList = list.Distinct();

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

1
var b = distinctList.ToArray();

我认为使用C字典是更好的方法,我可以使用LINQ按值排序