如何对list中满足某一个条件的元素的某一个属性求和
怎么对list<objec>中满足某一个条件的元素的某一个属性求和
我本来想这么写 var result = bslist.Select(x => x.BL_ID > 5).sum(p=>p.BS_IntervalTime)
但是后面写.sum(p=>p.BS_IntervalTime) 点不出来
我这么写哪里错了? 有没有其他写法?
------解决思路----------------------
没试过简略的语法,你用普通的写法来一次,是没问题的
如果要求结果精确,我个人还是用 List的 Cout,For循环来实现求和
------解决思路----------------------
var result = bslist.Select(x => x.BL_ID > 5).ToList().sum(p=>p.BS_IntervalTime)
------解决思路----------------------
bslist.where(x => x.BL_ID > 5).sum(p=>p.BS_IntervalTime)
------解决思路----------------------
lz的列表(bslist)中的元素都是object类型的,此类型中是没有BL_ID属性,lz要是真的清楚其实际类型就需要做一个类型转换
------解决思路----------------------
sum配where 而非select
The "Select" method is creating a new list of the lambda result for each element (true/false). The "Where" method is filtering based on the lambda.
我本来想这么写 var result = bslist.Select(x => x.BL_ID > 5).sum(p=>p.BS_IntervalTime)
但是后面写.sum(p=>p.BS_IntervalTime) 点不出来
我这么写哪里错了? 有没有其他写法?
------解决思路----------------------
没试过简略的语法,你用普通的写法来一次,是没问题的
如果要求结果精确,我个人还是用 List的 Cout,For循环来实现求和
------解决思路----------------------
var result = bslist.Select(x => x.BL_ID > 5).ToList().sum(p=>p.BS_IntervalTime)
------解决思路----------------------
bslist.where(x => x.BL_ID > 5).sum(p=>p.BS_IntervalTime)
------解决思路----------------------
lz的列表(bslist)中的元素都是object类型的,此类型中是没有BL_ID属性,lz要是真的清楚其实际类型就需要做一个类型转换
------解决思路----------------------
sum配where 而非select
The "Select" method is creating a new list of the lambda result for each element (true/false). The "Where" method is filtering based on the lambda.