【问题标题】:Linq to list query C#Linq 列出查询 C#
【发布时间】:2011-11-01 16:51:58
【问题描述】:

在我的软件中有一个具有以下属性的类列表:
名称 -- 数量
列表可能包含这些数据:
名称 1 -- 12
名称 1 -- 10
名称 2 -- 10
名称 2 -- 5
我需要这样的输出:
名称 1 -- 22
名称 2 -- 15
我可以使用杂乱的代码(使用 for each 等)生成此输出,但如何通过 LINQ 查询提供此输出?

【问题讨论】:

  • 那么你想总结列表中每个类实例的某些变量吗?
  • 顺便说一下,我当前选择的重构工具 (ReSharper) 会自动从“杂乱”代码转换为 LINQ,反之亦然。
  • @kmkemp 我使用 ReSharper ,因为我的“混乱”代码包含它没有重构的条件。

标签: c# linq linq-to-objects


【解决方案1】:

您可以使用Enumerable.GroupByEnumerable.Sum

它看起来类似于:

var values = theCollection
                .GroupBy(item => item.Name)
                .Select(g => new { Name = g.Key, Total = g.Sum(i => i.Value) });

foreach(var value in values)
    Console.WriteLine("{0} - {1}", value.Name, value.Total);

【讨论】:

    【解决方案2】:

    使用Sum and GroupBy,然后打印结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      相关资源
      最近更新 更多