【问题标题】:Merge two lists with objects into third list [duplicate]将两个带有对象的列表合并到第三个列表中[重复]
【发布时间】:2021-11-12 00:03:12
【问题描述】:

'我有两个包含不同对象的列表。我想将所有数据合并到 object3 中。 id是所有对象中的公共字段

'Object1 -> 有 ID,名字'

'Object2 -> 有 ID,街道,城市'

'Object3-> 有 ID、名称、街道、城市'

'''List<Customer> cust = new List<Customer>();
List<Order> order = new List<Order>();
List<OrderDetails> orderDetails = new List<OrderDetails>();

Customer obj = new Customer();
obj.ID = 5; obj.Name = "Sam"; cust.Add(obj);

Customer obj1 = new Customer();
obj.ID = 6; obj.Name = "Ram"; cust.Add(obj1);

Customer obj2 = new Customer();
obj.ID = 7; obj.Name = "Alex"; cust.Add(obj2);

Order order1 = new Order();
order1.ID = 5; order1.Product = "Book"; order.Add(order1);

Order order2 = new Order();
order2.ID = 6; order2.Product = "Game"; order.Add(order2);

Order order3 = new Order();
order3.ID = 8; order2.Product = "Computer"; order.Add(order3);

var od = from c in cust
         join o in order
         on c.ID equals o.ID
         select new OrderDetails
         {
             ID = c.ID,
             Name = c.Name,
             Product = o.Product
         };

orderDetails = od.ToList();'''

'orderDetails 计数为 0'

感谢任何帮助。

【问题讨论】:

标签: c# list merge


【解决方案1】:
  • 初始化列表以保存Object3 类型的项目
  • 遍历具有Object1 类型项目的列表
  • 循环时,根据ID,在第二个列表中找到匹配项
  • 如果没有匹配,继续
  • 如果有匹配项,则使用来自正在循环的项目 (Object1) 和匹配项 (Object2) 的信息创建一个类型为 Object3 的对象。将其添加到您在第一步中创建的列表中。

您现在有一个 Object3 列表,符合您的要求。

现在,这只是语法问题,如果您喜欢,可以添加一些糖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 2022-01-21
    • 2015-07-29
    • 2016-02-09
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多