如何为lambda表达式添加条件

时间:2010-06-07 10:44:08

标签: c# linq arrays

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

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

我想只包含itms ,其中r.CanDrive == true

你可以在单个linke lambda表达式中添加一个条件吗?你会怎么做?

2 个答案:

答案 0 :(得分:16)

您可以将两个LINQ链接在一起,如下所示:

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

答案 1 :(得分:10)

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

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

我个人会使用Where表格,但我想我会提出另一种选择......

(另一个替代方案是创建自己的Sum方法,该方法同时采用谓词和投影,但我认为这超出了顶层。)