我有一个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相同。

必须将其放置为更高级别,作为TitleChildren的同级(因此是MainAssignmentReportVM类的属性,而不是AssignmentReportVM类的属性)。然后,您应该可以对Count求和。

关于c# - 获取对象总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48230490/

10-12 02:45