var result = items
    .GroupBy(x => x.DistributionTime)
    .Select(g => new DistributionSummaryOutputDto
    {
        DistributionTime = g.Key == DateTime.MinValue ? default : g.Key,
        DistributionItems = g.ToList()
    })
    .ToList();
            var detailDict = details
                .Where(d => d.OfficeSupplyProcurementOrderId.HasValue)
                .GroupBy(d => d.OfficeSupplyProcurementOrderId!.Value)
                .ToDictionary(g => g.Key, g => g.ToList());

            foreach (var item in items)
            {
                item.OfficeSupplyProcurementDetailList = detailDict.TryGetValue(item.Id, out var list) ? list : [];
            }

发表评论