C# Distinct去重泛型List

  • List<int>去重
  • List<string>去重
  • List<T>去重

1. List<int>去重

 List<int> ilist = new List<int>() { 1, 2, 3, 4, 2, 3 };
 ilist = ilist.Distinct().ToList();
 foreach (var item in ilist)
 {
    Console.WriteLine(item);
 }

2. List<string>去重

 List<string> strList = new List<string>() { "4", "4", "5", "6", "6" };
 strList = strList.Distinct().ToList();
 foreach (var item in strList)
 {
    Console.WriteLine(item);
 }

3. List<T>去重

 public class User
 {
   public int Id { get; set; }
   public string Name { get; set; }
   public int Age { get; set;}
 }

//Main方法
 List<User> list = new List<User>() 
 { 
    new User() { Id = 1, Name = "张三", Age = 11 } ,
    new User() { Id = 1, Name = "张三", Age = 11} ,
    new User() { Id = 3, Name = "李四", Age = 13 } ,
 };
 //方法一
 list = list.GroupBy(p => p.Id).Select(q => q.First()).ToList();
 //方法二
 list = list.GroupBy(p => p.Name).Select(q => q.First()).ToList();
 //方法三
 list = list.GroupBy(p => p.Age).Select(q => q.First()).ToList();
 foreach (var item in list)
 {
   Console.WriteLine("Id:" + item.Id + ", Name:" + item.Name + ", Age:" + item.Age);
 }
 //方法四
 var list1 = (from p in list
              group p by new { p.Id, p.Name, p.Age } into g
              select g).ToList();
 foreach (var item in list1)
 {
    Console.WriteLine("Id:" + item.Key.Id + ", Name:" + item.Key.Name + ", Age:" + item.Key.Age);
 }

原文地址:https://www.cnblogs.com/LuckyZLi/p/11888239.html