我有一个类PropertyDetails:
public class PropertyDetails
{
public int Sequence { get; set; }
public int Length { get; set; }
public string Type { get; set; }
}
我正在创建一个PropertyDetails列表
List<PropertyDetails> propertyDetailsList = new List<PropertyDetails>();
我希望Length
&lt;列表中PropertyDetails.Sequence
的总和为{{1}} sumValue = 4
欢迎Linq解决方案。
答案 0 :(得分:16)
序列小于4的长度之和:
var result = propertyDetailsList.Where(d => d.Sequence < 4)
.Sum(d => d.Length);
答案 1 :(得分:7)
您可以使用linq的Sum
扩展名方法。首先,使用Where
过滤掉那些不符合您条件的项目。然后使用Select(pd=>pd.Length).Sum()
或使用传递给Sum()
的函数将PropertyDetail中的项映射到Length的重载。
const int sumValue = 4;
propertyDetailsList
.Where(pd=>pd.Sequence < sumValue)
.Sum(pd=>pd.Length);
答案 2 :(得分:6)
int sumLength = propertyDetailsList.Where(p => p.Sequence < 4).Sum(p => p.Length);
答案 3 :(得分:3)
var list = from p in propertyDetailsList
where p.Sequence < 4
select p.Length;
Console.WriteLine("sum is {0}", list .Sum())