{"title":"C# GroupJoin: 连接两个对象集合基于多个字段的相同内容","description":"本文将介绍如何在 C# 中使用 GroupJoin 方法将两个对象集合 (List) 根据多个字段相同进行连接,并提供示例代码及输出结果。","keywords":"C#, GroupJoin, 连接, 对象集合, List, 多字段, 相同内容, 示例代码, 输出结果","content":""C# GroupJoin: 连接两个对象集合基于多个字段的相同内容"\n\n本文将介绍如何在 C# 中使用 GroupJoin 方法将两个对象集合 (List) 根据多个字段相同进行连接,并提供示例代码及输出结果。\n\n\ncsharp\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nclass Program\n{\n static void Main(string[] args)\n {\n // 创建两个对象集合\n List<Person> persons = new List<Person>()\n {\n new Person { Id = 1, Name = \"John\" },\n new Person { Id = 2, Name = \"Alice\" },\n new Person { Id = 3, Name = \"Bob\" }\n };\n\n List<Order> orders = new List<Order>()\n {\n new Order { PersonId = 1, OrderNumber = \"A001\" },\n new Order { PersonId = 1, OrderNumber = \"A002\" },\n new Order { PersonId = 2, OrderNumber = \"B001\" },\n new Order { PersonId = 3, OrderNumber = \"C001\" }\n };\n\n // 使用GroupJoin方法连接两个对象集合\n var result = persons.GroupJoin(\n orders,\n person => person.Id,\n order => order.PersonId,\n (person, orderGroup) => new\n {\n Person = person,\n Orders = orderGroup\n });\n\n // 输出结果\n foreach (var item in result)\n {\n Console.WriteLine($\"Person: {item.Person.Name}\");\n Console.WriteLine(\"Orders:\");\n foreach (var order in item.Orders)\n {\n Console.WriteLine($\"- {order.OrderNumber}\");\n }\n Console.WriteLine();\n }\n }\n}\n\nclass Person\n{\n public int Id { get; set; }\n public string Name { get; set; }\n}\n\nclass Order\n{\n public int PersonId { get; set; }\n public string OrderNumber { get; set; }\n}\n\n\n上述代码中,我们创建了两个对象集合personsorders,分别代表人员和订单。然后,我们使用GroupJoin方法将这两个对象集合根据PersonId字段进行连接。最后,我们遍历连接结果并输出每个人员及其对应的订单。\n\n输出结果如下:\n\n\nPerson: John\nOrders:\n- A001\n- A002\n\nPerson: Alice\nOrders:\n- B001\n\nPerson: Bob\nOrders:\n- C001\n\n\n可以看到,连接结果正确地将每个人员与其对应的订单进行了分组。\n\n\n


原文地址: https://www.cveoy.top/t/topic/ppor 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录