【问题标题】:Calculating Total Count of Items in List<T> for multiple KeyValuePairs in Dictionary<string,List<string>>为 Dictionary<string,List<string>> 中的多个 KeyValuePairs 计算 List<T> 中的项目总数
【发布时间】:2011-04-07 19:05:22
【问题描述】:

我有一个Dictionary&lt;int,List&lt;string&gt;&gt;

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

我需要计算每个列表中所有项目的总数,因此在上面的示例中,我的结果是 110。

【问题讨论】:

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


    【解决方案1】:

    这将返回您的总数:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这很简单:

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

        【讨论】:

        • 如果我也想获得字典中的计数...如示例中指定...字典可能有 20 个列表,所以我想要 110+20=130.. 我该如何完成那个?
        • @NiravKamani:我不太明白你的例子。我认为这作为一个新问题会更好。
        • 我想要完美的查询来实现这个"int sum=dictionary.count + dictionary.Sum(x => x.Value.Count);"是的,我会尝试提出新问题..
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-19
        相关资源
        最近更新 更多