Linq to sql 有什么辦法可以實現消除列重復?


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM