C# 使用LINQ求和属性
最后一行的语法不正确。是否可以这样做,否则我将不得不为此属性编写查询以计算总和C# 使用LINQ求和属性,c#,linq,sum,C#,Linq,Sum,最后一行的语法不正确。是否可以这样做,否则我将不得不为此属性编写查询以计算总和 谢谢您考虑过扩展方法吗?您提供总和功能的地方。您考虑过扩展方法吗?这里提供了求和功能。顺便说一句,Count还支持谓词参数: 因此,您可以: DealsThisMonthOpen = deals.Where(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Open").Count(), DealsThisM
谢谢您考虑过扩展方法吗?您提供总和功能的地方。您考虑过扩展方法吗?这里提供了求和功能。顺便说一句,Count还支持谓词参数: 因此,您可以:
DealsThisMonthOpen = deals.Where(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Open").Count(),
DealsThisMonthLost = deals.Where(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Lost").Count(),
DealsThisMonthWon = deals.Where(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Won").Count(),
DealsThisMonth = DealsThisMonthOpen + DealsThisMonthLost + DealsThisMonthWon;
顺便说一句,Count还支持谓词参数:
因此,您可以:
DealsThisMonthOpen = deals.Where(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Open").Count(),
DealsThisMonthLost = deals.Where(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Lost").Count(),
DealsThisMonthWon = deals.Where(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Won").Count(),
DealsThisMonth = DealsThisMonthOpen + DealsThisMonthLost + DealsThisMonthWon;
也许我遗漏了什么,但这肯定有用 Count方法返回int,因此DealsThisMonthOpen、DealsThisMonthLost和DealsThisMonthWon都是整数值。DealsThisMonth就是这三个整数值的总和 您还可以使它更干净一点,除非以后需要三个不同的值:
var a = deals.Count(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Open"),
var b = deals.Count(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Lost"),
var c = deals.Count(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Won"),
new foobar
{
DealsThisMonthOpen = a,
DealsThisMonthLost = b,
DealsThisMonthWon = c,
DealsThisMonth = a + b + c
};
也许我遗漏了什么,但这肯定有用 Count方法返回int,因此DealsThisMonthOpen、DealsThisMonthLost和DealsThisMonthWon都是整数值。DealsThisMonth就是这三个整数值的总和 您还可以使它更干净一点,除非以后需要三个不同的值:
var a = deals.Count(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Open"),
var b = deals.Count(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Lost"),
var c = deals.Count(deal => deal.DateCreated.Month == date.Month && deal.DealStatus == "Won"),
new foobar
{
DealsThisMonthOpen = a,
DealsThisMonthLost = b,
DealsThisMonthWon = c,
DealsThisMonth = a + b + c
};