计算列表<string>中的重复值的数量并存储在字典中

时间:2015-08-19 08:57:24

标签: c# string list dictionary duplicates

我有一个字符串列表,在这个列表中有一些字符串重复两次或更多。

我想计算它们并将它们添加到字典中:

List<string> lst = { 'A' , 'B' , 'B' , 'c' , 'c' , 'c' };

它会转到这样的字典:

A , 1
B , 2
c , 3

我该怎么做?!

2 个答案:

答案 0 :(得分:3)

var dict = lst.GroupBy(x => x).ToDictionary(x => x.Key, x => x.Count());

如果您想以不区分大小写的方式执行此操作

var dict = lst.GroupBy(x => x, StringComparer.InvariantCultureIgnoreCase )
              .ToDictionary(x => x.Key, x => x.Count());

答案 1 :(得分:1)

这样的事情:

  List<Char> lst = new {  // Note "Char"
    'A' , 'B' , 'B' , 'c' , 'c' , 'c' };

  var dictionary = list
    .GroupBy(item => item)
    .ToDictionary(chunk => chunk.Key,
                  chunk => chunk.Count());