在C#中分组列表元素

时间:2011-09-22 01:14:58

标签: c#

我有以下列表:

List<string> data = new List<string>();

然后我通过获取MySQL请求的结果来填充它:

data.Add(name);

列表填充得很好,但我想进行分组,并希望获得列表中每个名称的编号:

name A = X;
name B = X; 
etc...

我尝试使用data.GroupBy(data, data.Count)但是没有效果。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

from d in data
group d by d.Name into gds
select new
{
    Name = gds.Key,
    Count = gds.Count(),
}

答案 1 :(得分:2)

试试这个:

string[] foo = new string[]{"foo","foo","bar","foo","baz","foo"};

var grouping = foo.ToList().GroupBy(x=>x);

foreach (var s in grouping.OrderByDescending(x=>x.Count()))
{
    Console.WriteLine(s.Key + " - " + s.Count().ToString());
}