泛型的Distinct(IEqualityComparer)的用法(转)
泛型的Distinct(IEqualityComparer)的用法
针对数组可以用List.Distinct(),可以过滤掉重复的内容。
针对对象中的某个字段只能用Distinct(IEqualityComparer<T>)
用法:
1 public class AppIndex:BasePage 2 { 3 public void DoGet() 4 { 5 List<test11> list_test = new List<test11>(); 6 list_test.Add(new test11() { 7 m=1, 8 v="one" 9 }); 10 list_test.Add(new test11() 11 { 12 m = 2, 13 v = "two" 14 }); 15 list_test.Add(new test11() 16 { 17 m = 3, 18 v = "three" 19 }); 20 list_test.Add(new test11() 21 { 22 m = 4, 23 v = "fornt" 24 }); 25 list_test.Add(new test11() 26 { 27 m = 4, 28 v = "fornt" 29 }); 30 list_test.Add(new test11() 31 { 32 m = 3, 33 v = "fornt" 34 }); 35 var ss = list_test.Distinct(new Comparint());//这里调用 36 this.Add("mylist",new Travel.DAL.AppActive().GetList(BaseCode)); 37 } 38 } 39 40 public class test11 41 { 42 public int m { get; set; } 43 public string v { get; set; } 44 } 45 public class Comparint : IEqualityComparer<test11> 46 { 47 48 public bool Equals(test11 x, test11 y) 49 { 50 if (x == null && y == null) 51 return false; 52 return x.m==y.m; 53 } 54 55 public int GetHashCode(test11 obj) { 56 return obj.ToString().GetHashCode(); 57 } 58 }

浙公网安备 33010602011771号