列表列表的列表

时间:2013-08-21 11:01:34

标签: c# list

我有一个C#的sting列表,可以是x行长。下面将显示一个小例子。我想知道我现在如何获得小的不同列表,以便A不会出现多次。这个列表即将推出代码。所以它是随机的。

list = {a,b,a,f,a,null,a,e,a,e}

3 个答案:

答案 0 :(得分:8)

尝试LINQ .... 更具体... 鉴于你的列表实际上是字符串[],你可以这样做......

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); 
}

答案 1 :(得分:1)

您还可以使用HashSet<T>

var set = new HashSet<string>(list);

如果您想用唯一列表替换旧列表:

list = set.ToList();

HashSet<T>有许多useful and efficient methods经常被忽视。

  

HashSet<T>类提供高性能的集合操作。一套   是一个不包含重复元素的集合,以及它的集合   元素没有特别的顺序。

更新 “以便A不会多次出现”

由于列表包含小写a,我假设你不知道默认情况下.NET比较区分大小写。您可以通过以下方式比较不区分大小写:

var set = new HashSet<string>(list, StringComparer.OrdinalIgnoreCase);

答案 2 :(得分:0)

只需使用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编写的。您将无法使用转储方法