Resharper说我可以,但我不知道怎么做。有几种形式的例子:
foreach (ItemType Item in ListOfItems)
if (ConditionalInvolvingItem)
Total += ItemProperty;
当然,我可以在条件列表上创建一个子列表,然后对子列表中的项目求和,但这样会更清楚,并且会运行得更慢。
答案 0 :(得分:3)
var total = listOfItems
.Where(item => ConditionalInvolvingItem(item))
.Sum(item => item.Property);
答案 1 :(得分:3)
ReSharper是一个方便的工具,但请记住,它的建议并不总是更高效或不言自明。这就是这种情况。这真的是一个折腾。我确定你已经有了一个LINQ语句,但我想这个例子看起来像这样:
var Total = (from Item in ListOfItems
where (ConditionalInvolvingItem)
select ItemProperty).Sum();