为Dictionary中的多个KeyValuePairs计算List <t>中项目的总计数<string,list <string>&gt; </string,list <string> </t>

时间:2010-09-03 10:55:47

标签: c# .net linq .net-3.5 c#-3.0

我有Dictionary<int,List<string>>

我有多个KeyValuePairs所以在第一个KeyValuePair中,List可能有10个项目,第二个KeyValuePair可能有100个等。

我需要计算每个列表中所有项目的总计数,所以在上面的示例中,我的结果为110.

3 个答案:

答案 0 :(得分:12)

这很简单:

int sum = dictionary.Sum(x => x.Value.Count);

答案 1 :(得分:0)

您可以实现一个循环遍历字典的count方法,并添加内部列表的计数。

更好的方法是创建一个专门的集合并在内部维护这个数据结构。您可以覆盖该类中的count方法以返回计数。然后,您可以通过保留类级别计数器进行优化,并在添加和删除项目时更新它。

答案 2 :(得分:0)

这会返回您的总数:

int sum = dictionary.Values.Sum(x => x.Count);