【发布时间】:2011-04-07 19:05:22
【问题描述】:
我有一个Dictionary<int,List<string>>。
我有多个 KeyValuePair,所以在第一个 KeyValuePair 列表中可能有 10 个项目,第二个 KeyValuePair 可能有 100 个等。
我需要计算每个列表中所有项目的总数,因此在上面的示例中,我的结果是 110。
【问题讨论】:
标签: c# .net linq .net-3.5 c#-3.0
我有一个Dictionary<int,List<string>>。
我有多个 KeyValuePair,所以在第一个 KeyValuePair 列表中可能有 10 个项目,第二个 KeyValuePair 可能有 100 个等。
我需要计算每个列表中所有项目的总数,因此在上面的示例中,我的结果是 110。
【问题讨论】:
标签: c# .net linq .net-3.5 c#-3.0
这将返回您的总数:
int sum = dictionary.Values.Sum(x => x.Count);
【讨论】:
您可以实现一个计数方法,该方法循环遍历字典并添加内部列表的计数。
更好的方法是创建一个专门的集合并在内部维护这个数据结构。您可以覆盖该类中的 count 方法以返回计数。然后,您可以通过保留类级别计数器进行优化,并在添加和删除项目时对其进行更新。
【讨论】:
这很简单:
int sum = dictionary.Sum(x => x.Value.Count);
【讨论】: