Is there an AddUnique method similar to Addrange() for alist in C#

前端 未结 9 1651
[愿得一人]
[愿得一人] 2021-01-07 16:32

I have a list in C#:

       var list = new List();
       list.AddRange(GetGreenCars());
       list.AddRange(GetBigCars());
       list.AddRange(         


        
9条回答
  •  自闭症患者
    2021-01-07 16:48

    Yet another option using Linq:

    public static void AddUnique(this IList self, IEnumerable items)
    {
      self.AddRange(
        items.Where(x => self.FirstOrDefault(y => y.Name == x.Name) ==
        null).ToList());
    }
    
    var list = new List();
    list.AddUnique(GetGreenCars());
    list.AddUnique(GetBigCars());
    list.AddUnique(GetSmallCars());
    

提交回复
热议问题