使用Linq查找重复
1 namespace RemoveTheSame 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 List<User> list = new List<User>() 8 { 9 new User{Id=1,Name="user1",Pwd="123"}, 10 new User{Id=2,Name="user1",Pwd="123"}, 11 new User{Id=3,Name="user2",Pwd="123"} 12 }; 13 GetTheSame(list, out string tkey); 14 Console.WriteLine($"The Same is {tkey}"); 15 Console.ReadKey(); 16 } 17 public static void GetTheSame(List<User> listOld, out string tkey/*,out User user*/) 18 { 19 tkey = null; 20 var result = from x in listOld 21 group x by x.Name into g 22 where g.Count() > 1 23 select g; 24 foreach (var item in result) 25 { 26 tkey = item.Key; 27 } 28 } 29 } 30 public class User 31 { 32 public string Name { get; set; } 33 public int Id { get; set; } 34 public string Pwd { get; set; } 35 36 } 37 }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 使用Linq查找重复 { class Program { static void Main(string[] args) { List<User> list = new List<User>() { new User{Id=1,Name="user1",Pwd="123"}, new User{Id=2,Name="user1",Pwd="123"}, new User{Id=3,Name="user2",Pwd="123"} }; string tkey = ""; GetTheSame(list, out tkey); //Console.WriteLine($"The Same is {tkey}"); Console.ReadKey(); } public static void GetTheSame(List<User> listOld, out string tkey/*,out User user*/) { tkey = null; var resulst = from x in listOld group x by x.Name into g select g; var result = from x in listOld group x by x.Name into g //根据 name 分组 返回 一个集合(集合中每个元素 又是一个集合) where g.Count() > 1 // 集合中每个 元素集合行数大于1的 select g; // g为 IGrouping<string,User> 类型 //g里面有多对 string List<User> //string 为 key 每个 string 又继而对应一个集合 集合元素类型为User //IGrouping<string,> //表示具有公共键的对象的集合。 foreach (var item in result) { tkey = item.Key; } } } public class User { public string Name { get; set; } public int Id { get; set; } public string Pwd { get; set; } } }