文章出處

比如數據庫里有一表,有兩個字段:
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”的重載。”。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()