C#之List集合去重復(fù)對(duì)象的實(shí)現(xiàn)方法
C# List集合去重復(fù)對(duì)象方法
1、測(cè)試數(shù)據(jù)
List<string> str_list = new List<string> { "1", "2", "3", "3" ,"4","5","5"};簡單List去重
var distinctList = str_list.Distinct();
2、測(cè)試數(shù)據(jù)
var RegInfoList= new List<RegInfo>
{
new RegInfo { Id=A1001, Name="test1",Desc="阿莫西林"},
new RegInfo { Id=A1001, Name="test1",Desc="阿莫西林" },
new RegInfo { Id=A1002, Name="test2",Desc="葡萄糖注射液"},
new RegInfo { Id=B1003, Name="test3",Desc="氯化鈉注射液"},
new RegInfo { Id=C1002, Name="test4",Desc="嗎丁啉"}
};2.1多屬性去重(根據(jù)Id,Name進(jìn)行Distinct)
List<RegInfo> distinctRegInfo = RegInfoList
.GroupBy(p => new {p.Id, p.Name} )
.Select(g => g.First())
.ToList();2.2單屬性去重(根據(jù)Id進(jìn)行Distinct)
var distinctList = RegInfoList.GroupBy(x => x.Id).Select(y => y.First()); var distinctList = RegInfoList.GroupBy(x => x.Id).Select(y => y.FirstOrDefault());
3、知識(shí)點(diǎn)補(bǔ)充
3.1 Linq First 和 FirstOrDefault的區(qū)別
First() 方法
- 返回序列中的第一個(gè)元素。
FirstOrDefault ()方法
- 返回序列中的第一個(gè)元素;如果序列中不包含任何元素,則返回默認(rèn)值 null。
注:
如果返回的是對(duì)象, 建議使用FirstOrDefault ,并對(duì)返回的對(duì)象進(jìn)行判空操作
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)
c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)...2007-08-08
C#實(shí)現(xiàn)文件上傳與下載功能實(shí)例
本篇文章主要介紹了C#實(shí)現(xiàn)文件上傳與下載,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2016-12-12
C#實(shí)現(xiàn)微信退款及對(duì)賬功能的示例詳解
在招聘報(bào)名系統(tǒng)里,考務(wù)費(fèi)支付是其中一個(gè)環(huán)節(jié),支付方式很多種,比如銀聯(lián)、微信、支付寶等等,本次我們以微信支付進(jìn)行舉例,在實(shí)際的應(yīng)用中,對(duì)于支付成功的考生,我們會(huì)遇到實(shí)現(xiàn)退款的需求,所以本文給大家介紹了使用C#實(shí)現(xiàn)微信退款及對(duì)賬,需要的朋友可以參考下2023-11-11
C#中String StringBuilder StringBuffer類的用法
這篇文章給大家簡單介紹下C#中String StringBuilder StringBuffer三個(gè)類的用法,需要的的朋友參考下吧2017-05-05
C#實(shí)現(xiàn)簡單過濾非法字符實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)簡單過濾非法字符的方法,涉及C#針對(duì)字符串遍歷與判斷的相關(guān)技巧,非常簡單實(shí)用,需要的朋友可以參考下2015-11-11
C#開發(fā)之int與string轉(zhuǎn)化操作
這篇文章主要介紹了C#開發(fā)之int與string轉(zhuǎn)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12

