【问题标题】:how do you add a condition to a lambda expression如何在 lambda 表达式中添加条件
【发布时间】:2010-06-07 10:44:07
【问题描述】:

如果我今天有这段代码可以使用 LINQ 找出总和:

return (MyArray.Sum(r => r.Trips);

我只想包含它 r.CanDrive == true

你能在单个链接 lambda 表达式中添加一个条件吗?你会怎么做呢

【问题讨论】:

    标签: c# linq arrays


    【解决方案1】:

    您可以像这样将两个 LINQ 链接在一起:

    return MyArray.Where(r => r.CanDrive).Sum(r => r.Trips);
    

    【讨论】:

    • 前括号是什么意思?
    • 你的拨号棒在帖子里:)
    【解决方案2】:

    大卫的回答完全正确,但另一种选择可能是使用条件运算符:

    return MyArray.Sum(r => r.CanDrive ? r.Trips : 0);
    

    我个人会使用Where 表单,但我想我会提出一个替代方案...

    (另一种选择是创建自己的 Sum 方法,该方法同时采用谓词和投影,但我认为这太过分了。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 2017-06-13
      • 1970-01-01
      • 2011-04-08
      • 2017-01-22
      • 1970-01-01
      • 2020-07-26
      相关资源
      最近更新 更多