2016-03-30 63 views
1

我有一個具有相同值的多個條目的字符串列表。我需要獲取列表中的所有唯一元素以及每個唯一元素組的數量。 例如:c#編組列表並獲得每個組的計數

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

我需要這樣的數據: 「貓」 - 2 「狗」 - 1 「馬」 - 1

+0

使用Linq,看看GroupBy的擴展方法。例如list.GroupBy(x => x) –

回答

2

你需要做的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()); 
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()}) ; 
相關問題