C# 如何合并2个列表项

C# 如何合并2个列表项,c#,merge,listitem,C#,Merge,Listitem,我有两个列表项 首先 {Id = 1, Name = "a"}{Id = 2, Name = "b"}{Id = 3, Name = "c"} 第二 {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"} 像这样的 cl

我有两个列表项

  • 首先

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

    {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"}
    

    像这样的

    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();
         }
    
    类项目{
    公共int id;
    公共字符串名称;
    }
    静态void Main(字符串[]参数)
    {
    var list=新列表();
    添加(新项目{id=1,name=“a”});
    添加(新项目{id=2,name=“b”});
    添加(新项目{id=3,name=“c”});
    var list1=新列表();
    列表1.Add(新项目{id=2,name=“b”});
    列表1.Add(新项目{id=3,name=“c”});
    列表1.Add(新项目{id=4,name=“d”});
    var c=list.Select(b=>new{b.id,b.name});
    vard=list1.Select(b=>new{b.id,b.name});
    var merge=c.Concat(d.Distinct().ToList();
    foreach(合并中的变量项)
    {
    控制台写入线(项目);
    }
    Console.ReadKey();
    }
    
    然后
    list1
    是合并列表。

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

    e、 g

    然后

    您也可以使用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();
    
    list1.AddRange(list2);
    
    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();