【问题标题】:How to merge 2 listitems如何合并 2 个列表项
【发布时间】:2015-07-20 03:19:34
【问题描述】:

我有 2 个列表项

  1. 第一

    {Id = 1, Name = "a"}{Id = 2, Name = "b"}{Id = 3, Name = "c"}
    
  2. 第二

    {Id = 2, Name = "b"}{Id = 3, Name = "c"}{Id = 4, Name = "d"}
    

如何合并它们并获得如下列表项:

{Id = 1, Name = "a"}{Id = 2, Name = "b"}{Id = 3, Name = "c"}{Id = 4, Name = "d"}

【问题讨论】:

    标签: c# merge listitem


    【解决方案1】:

    这样的?

    class items {
                 public  int id;
                 public string name;
                }
    
    static void Main(string[] args)
            {
                var list = new List<items>();
                list.Add(new items {id=1 , name="a"});
                list.Add(new items { id = 2, name = "b" });
                list.Add(new items { id = 3, name = "c" });
    
                var list1 = new List<items>();
                list1.Add(new items { id = 2, name = "b" });
                list1.Add(new items { id = 3, name = "c" });
                list1.Add(new items { id = 4, name = "d" });
    
                var c = list.Select(b=> new {b.id, b.name});
                var d = list1.Select(b => new { b.id, b.name });
                var merge = c.Concat(d).Distinct().ToList();
    
                foreach (var item in merge)
                {
                    Console.WriteLine(item);
                }
    
               Console.ReadKey();
         }
    

    【讨论】:

      【解决方案2】:
      var list1 = new[]{new {Id = 1, Name = "a"},new {Id = 2, Name = "b"}, new{Id = 3, Name = "c"}}.ToList();
      var list2 = new[]{new {Id = 1, Name = "a"},new {Id = 2, Name = "b"}, new{Id = 3, Name = "c"}}.ToList();
      
      list1.AddRange(list2);
      

      那么list1就是合并列表。

      【讨论】:

        【解决方案3】:

        可以使用c#的“AddRange”或“Union”或“Concat”函数

        例如

        var list1 = new[]{new {Id = 1, Name = "a"},new {Id = 2, Name = "b"}, new{Id = 3, Name = "c"}}.ToList();
        
        var list2 = new[]{new {Id = 1, Name = "a"},new {Id = 2, Name = "b"}, new{Id = 3, Name = "c"}}.ToList();
        

        然后

        var MergedResult = list1.Union(list2).ToList();
        

          var MergedResult = list1.AddRange(list2).ToList();
        

        你也可以使用 Concat...

        在此处查看它们之间的区别.NET List Concat vs AddRange

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-02-10
          • 2021-12-20
          • 2022-06-28
          • 1970-01-01
          • 2020-03-10
          • 2018-10-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多