【问题标题】:Calculate sum using LINQ使用 LINQ 计算总和
【发布时间】:2015-03-29 04:25:09
【问题描述】:
foreach (Item item in Items)
                        {
                            Cost = Cost +
                                    item.Costs.OrderByDescending(x => x.ID)
                                              .FirstOrDefault()
                                              .Cost;

                        }

上面的 LINQ 返回 150。

我有 4 个项目 (1,2,3,4) 和相应的成本。我需要重写上面的 LINQ 以获得正确的总成本 210。

ID--ItemID-- 费用

11 -- 1 -- 10

21 -- 2 -- 20

31 -- 2 -- 30

41 -- 3 -- 40

51 -- 3 -- 50

61 -- 4 -- 60

任何人都可以提供修改后的 LINQ 吗?

如下修改 LINQ 并没有给我预期的结果 --

foreach (Item item in Items)
                    {
                        Cost = Cost +
                                item.Costs.Sum(r => r.Cost);
                    }

【问题讨论】:

  • Sum of items in a collection 的可能重复项
  • @djechlin ....不能解决我的问题。我已经尝试过使用 SUM 函数。
  • 您得到的结果是 360 而不是 210?请注意,360 = 150 + (150 + 60),也许你可以看到你的错误——重复计算你的集合的一部分。
  • @Sammy - 你有机会看看我的答案吗?

标签: c# linq linq-to-objects


【解决方案1】:

我不知道你为什么要通过先循环然后在循环中再次编写查询来搞砸它。使用foreach 循环或这样的 LINQ 查询执行此操作:-

int result = items.Sum(x => x.Cost);

它会给你 210 作为输出。

【讨论】:

    猜你喜欢
    • 2012-02-28
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多