文章出處
文章列表
比如數據庫里有一表,有兩個字段:
ID User
1 小白
2 小紅
3 小白
過濾User列為小白的重復項后,我想要得到:
ID User
1 小白
2 小紅
如果寫db.linq.customer.Distinct<customer>();這樣只能是每行全部匹配過濾,請問我應該怎么做?
自定義比較運算符:
1 //自定義比較符 2 public class MyComparer : IEqualityComparer<Customer> 3 { 4 public bool Equals(Customer x, Customer y) 5 { 6 return (x.User == y.User); 7 } 8 9 public int GetHashCode(User obj) 10 { 11 return obj.ToString().GetHashCode(); 12 } 13 } 14 15 16 17 //消除重復數據 18 IEnumerable<Customer> CustomerDistinctList = db.Customers.ToList().Distinct(new MyComparer ());
使用Linq中的Distinct方法對序列進行去重操作,討論,LINQ去除重復的數據(某個字段有重復的數據),對linq查詢結果進行去重處理。討論,LINQ去除重復的數據(某個字段有重復的數據)的Distinct方法.
我寫了下面一個類,然后在LINQ的查詢語句后追加.Distinct(new MyComparer());
想實現查詢的結果里,不存在姓名相同的行。
編譯通過了,但使用它就報錯說“不支持用于查詢運算符“Distinct”的重載。”。
文章列表
全站熱搜