我有一个Lambda表达式,如下所示:
model =
db.MyTable.Where(
x => x.deleted == false && x.MyDate.Month == monthInt && x.MyDate.Year == yearInt)
.GroupBy(x => x.codeAC.ACatagory.Text)
.Select(y => new MainAssignmentReportVM()
{
Title = y.Key,
Children = y.Select(z => new AssignmentReportVM()
{
Assignment = z.codeAC.text,
Location = z.codeLocation.Location,
Count =
y.Count(
t =>
t.codeAC.text == z.codeAC.text &&
t.codeLocation.Location == z.codeLocation.Location),
EachFlightTotal = y.Where(s => s.codeAC.text == z.codeAC.text && s.codeLocation.Location == z.codeLocation.Location).Sum(s => s.Flight.Value),
TotalFlightCombined = y.Sum(x => x.Flight.Value),
// AssignmentTotalCount -- This is where I need help
}).Distinct()
});
我在上面的代码中评论了需要帮助的地方。
AssignmentTotalCount
应该是Count
的总和。如何在此lambda表达式中实现这一点?我正在考虑将
AssignmentTotalCount
设置为只读属性,并在类中进行设置,因为它不会被编辑或进行其他操作。.但是我不知道如何在类中进行设置。任何帮助表示赞赏。
最佳答案
通过将AssignmentTotalCount
放在您放置它的位置,Count
的总和将始终与Count相同。
必须将其放置为更高级别,作为Title
和Children
的同级(因此是MainAssignmentReportVM
类的属性,而不是AssignmentReportVM
类的属性)。然后,您应该可以对Count
求和。
关于c# - 获取对象总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48230490/