我有一个字典,看起来像这样:
Dictionary<String, List<String>>
test1 : 1,3,4,5
test2 : 2,3,6,7
test3 : 2,8
如何使用LINQ和LINQ扩展计算所有值?
答案 0 :(得分:33)
假设你有:
Dictionary<String, List<String>> dict = ...
如果你想要列表的数量,它就像:
一样简单int result = dict.Count;
如果您想要所有列表中所有字符串的总数:
int result = dict.Values.Sum(list => list.Count);
如果您想要计算所有列表中所有不同字符串的计数:
int result = dict.Values
.SelectMany(list => list)
.Distinct()
.Count();
答案 1 :(得分:5)
怎么样
yourdictionary.Values.Sum(l => l.Count);
答案 2 :(得分:0)
如果您想分别计算每个项目:
dict.Values.SelectMany(s => s).GroupBy(s => s)
.Select(g => new {Value = g.First(), Count = g.Count});
您的样本将获得:
“1”,1; “3”,2; “4”,1; “5”,1,“6”,1; “7”,1; “8”,1