C# List Distinct

來源:互聯網
上載者:User

不太清楚微軟為啥給泛型List提供了Distinct擴充, 卻非要傳遞一個Compare型的參數, 為啥不是一個委託呢?
好麻煩啊, 只能實現那個介面...

代碼

 1 #region 過濾重複資料
 2 public delegate bool EqualsComparer<T>(T x, T y);
 3 /// <summary>
 4 /// 過濾重複資料
 5 /// </summary>
 6 public class Comparint<T> : IEqualityComparer<T>
 7 {
 8     private EqualsComparer<T> ec;
 9     public Comparint() { }
10     public Comparint(EqualsComparer<T> e)
11     {
12         this.ec = e;
13     }
14     #region IEqualityComparer<BudgetBE> 成員
15 
16     public bool Equals(T x, T y)
17     {
18         if (null != this.ec)
19             return this.ec(x, y);
20         else
21             return false;
22     }
23 
24     public int GetHashCode(T obj)
25     {
26         return obj.ToString().GetHashCode();
27     }
28 
29     #endregion
30 }
31 #endregion

 

使用時:

1 list.Distinct(new Comparint<自訂類型>(
2     delegate (自訂類型 x, 自訂類型 y)
3     {
4         if (null != x && null != y)
5             return x.屬性 == y.屬性;
6         return false;
7     }
8 ));

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.