我有一个可以长 x 行的 C# 刺痛列表。下面将显示一个小示例。我想知道我现在如何获得小的不同列表,这样它就A
不会出现多次。这个列表是为代码而来的。所以它是随机的。
list = {a,b,a,f,a,null,a,e,a,e}
尝试 LINQ .... 更具体地说...鉴于您的列表实际上是 string[] 您可以这样做...
string[] list = {"a","b","a","f","a",null,"a","e","a","e"};
var distinctList = list.Distinct();
foreach (var str in distinctList)//Distinct list of values
{
Console.Write(str);
}
您还可以使用HashSet<T>
:
var set = new HashSet<string>(list);
如果您想用唯一列表替换旧列表:
list = set.ToList();
HashSet<T>
有许多有用且有效的方法,但往往被忽视。
该类
HashSet<T>
提供高性能的集合操作。集合是不包含重复元素且其元素没有特定顺序的集合。
更新 “这样A
就不会出现多次”
由于该列表包含小写a
,我假设您不知道 .NET 默认比较区分大小写。您可以通过这种方式比较不区分大小写:
var set = new HashSet<string>(list, StringComparer.OrdinalIgnoreCase);
只需像这样使用 distinct() 关键字:
List<string> foo = new List<string> {"a","b","a","f", "a", null,"a" ,"e","a","e"};
foreach (var element in foo.Distinct())
{
element.Dump();
}
输出:
a
b
f
null
e
这是用 Linqpad 编写的。您将无法使用 Dump 方法