GroupBy并计算List中的唯一元素

Jas*_*n94 19 .net c#

我有一个只包含字符串的列表.我喜欢做的是分组并返回计数.

例如:

Foo1
Foo2
Foo3
Foo1
Foo2 
Foo2
Run Code Online (Sandbox Code Playgroud)

会导致Foo1:2,Foo2:3,Foo3:1.我已经尝试过Linq但是列表中有一个GroupBy可能会做的伎俩但是我把它搞砸了,无法想象使用:(

Ser*_*-Tm 35

var list = new List<string> { "Foo1", "Foo2", "Foo3", "Foo2", "Foo3", "Foo3", "Foo1", "Foo1" };

var grouped = list
    .GroupBy(s => s)
    .Select(group => new { Word = group.Key, Count = group.Count() });
Run Code Online (Sandbox Code Playgroud)


Roy*_*mir 5

 var items= myList
    .GroupBy(g => g)
    .Select(t => new {count= t.Count(), key= t.Key });

 foreach (var group in items)
     Console.WriteLine ( group.key + " " + group.count);
Run Code Online (Sandbox Code Playgroud)