var parentList = detailData.GroupBy(x => new { x.dpId, x.dpNumber, x.dpDate, x.workerName, x.workerNo }) .Select(g => new PrescriptionParentOutput { dpId = g.Key.dpId, dpNumber = g.Key.dpNumber, dpDate = g.Key.dpDate, workerName = g.Key.workerName, workerNo = g.Key.workerNo, nums = , subTotal = g.Sum(x => x.subTotal) }).ToList();
时间: 2024-02-10 15:20:50 浏览: 150
j2ee-struts2-Select_DoubleSelect.rar_struts2 doubleselect
这段代码是使用 LINQ 对 `detailData` 进行了分组(`GroupBy`),然后对每个分组进行了一个映射操作(`Select`)。
具体来说,`GroupBy` 方法使用一个匿名类型作为分组条件,这个匿名类型包含了 `dpId`、`dpNumber`、`dpDate`、`workerName` 和 `workerNo` 字段。这个方法返回一个 `IGrouping` 对象的集合,每个 `IGrouping` 对象代表一个分组。
接下来是 `Select` 方法,它对每个分组进行了映射操作,将每个分组映射成一个 `PrescriptionParentOutput` 对象。这个对象包含了 `dpId`、`dpNumber`、`dpDate`、`workerName`、`workerNo`、`nums` 和 `subTotal` 字段。其中,`dpId`、`dpNumber`、`dpDate`、`workerName` 和 `workerNo` 字段的值来自于分组条件,`nums` 字段的值使用了 `Count` 方法对分组进行了计数操作,`subTotal` 字段的值使用了 `Sum` 方法对分组进行了求和操作。
最后,使用 `ToList` 方法将这个结果集合转换为了一个 `List<PrescriptionParentOutput>` 类型的对象,并赋值给了 `parentList` 变量。
阅读全文