1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| public record Order(int Id, string Customer, decimal Amount); public record Customer(string Name, string City);
var customers = new List<Customer> { new("张三", "北京"), new("李四", "上海"), };
var orders = new List<Order> { new(1, "张三", 100), new(2, "张三", 200), new(3, "李四", 150), };
var customerOrders = customers.GroupJoin( orders, customer => customer.Name, order => order.Customer, (customer, orderList) => new { customer.Name, OrderCount = orderList.Count(), TotalAmount = orderList.Sum(o => o.Amount), Orders = orderList });
foreach (var co in customerOrders) { Console.WriteLine($"{co.Name}: {co.OrderCount} 单, 共 {co.TotalAmount} 元"); foreach (var order in co.Orders) Console.WriteLine($" - 订单 #{order.Id}: {order.Amount} 元"); }
|