我有一个包含多个相同值条目的字符串列表。我需要获取列表中的所有唯一元素以及每个唯一元素组的计数。 例如:
string a = "cat";
string b = "dog";
string c = "cat";
string d = "horse";
List<string> list = new List<string>();
list.Add(a);
list.Add(b);
list.Add(c);
list.Add(d);
我需要这些数据:&#34; cat&#34; - 2,&#34; dog&#34; - 1,&#34; horse&#34; - 1
答案 0 :(得分:5)
你需要做一个GroupBy:
var result=list.GroupBy(s=>s).Select(g=>new{Animal=g.Key, Count=g.Count()});
foreach(var e in result)
Console.WriteLine("{0}--{1}",e.Animal,e.Count);
如果您愿意,也可以删除对Select
扩展程序的调用:
var result=list.GroupBy(s=>s);
foreach(var g in result)
Console.WriteLine("{0}--{1}",g.Key,g.Count());
答案 1 :(得分:0)
List<string> list = new List<string>() { "cat", "dog", "cat", "horse" };
var groupedResult = list.GroupBy(x => x).Select(y=> new{item = y.Key , count=y.Count()}) ;