Linq查询从列表中获取总和,其中某些属性等于

时间:2019-07-09 14:21:42

标签: c# list linq

我有以下课程:

活动

  • 时间(整数)

  • 已检查(字符)

示例列表:

活动1: 时间= 5已检查= y

活动2: 时间= 5已检查= n

活动3: 时间= 5已检查= y

在我的活动列表中,我想选择具有选中值“ y”的活动的总时间(以分钟为单位)。

在上述情况下,我的总数应该是10。

我使用了以下内容:

int minutes =  i.Activities.Sum(i.Activities.Where(x => x.Checked == 'y'));

这将返回

  

'无法从System.Collections.Generic.IEnumerable转换   到System.Func'

我在做什么错?

1 个答案:

答案 0 :(得分:4)

您要事先过滤结果:

int minutes =  i.Activities.Where(x => x.Checked == 'y').Sum(x => x.Time);