新聞中心
前言
說到對集合去重處理,第一時間想到的肯定是Linq的Distinct擴展方式,對于一般的值類型集合去重,很好處理,直接list.Distinct()即可。但是如果想要對一個引用類型的集合去重(屬性值都相同就認為重復),就會發(fā)現(xiàn),直接Distinct()是不行的
先來看看泛型鏈表 List
public class List
: IList , ICollection , IList, ICollection, IReadOnlyList , IReadOnlyCollection , IEnumerable , IEnumerable
可見它實現(xiàn)了 IEnumerable
使用這個方法時要注意:
(1)該方法并不會改變原來的鏈表;
(2)該方法返回一個對象(假設叫做dis),通過該對象可以枚舉原鏈表中的非重復元素,但是并沒有把非重復元素復制一份到新的對象中(連簽拷貝也沒有)
(3)由于(2),在枚舉dis時,始終是依賴于原有鏈表,所以如果在獲得dis后,又更新了原有鏈表,那么使用dis枚舉將會使用原有鏈表的最新狀態(tài)。
var list=new List()///表明具有重復值得集合
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章名稱:利用Distinct()內置方法對List集合的去重問題詳解-創(chuàng)新互聯(lián)
分享路徑:http://fisionsoft.com.cn/article/jjjij.html