AI智能
改变未来

【日常笔记】C# List集合去重复对象的方法


1、测试数据

[code] List<string> str_list = new List<string> { \"1\", \"2\", \"3\", \"3\" ,\"4\",\"5\",\"5\"};

1.1 简单List去重

[code]var distinctList = str_list.Distinct();

2、测试数据

[code]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多属性去重(根据Id,Name进行Distinct)

[code]List<RegInfo> distinctRegInfo = RegInfoList.GroupBy(p => new {p.Id, p.Name} ).Select(g => g.First()).ToList();

2.2单属性去重(根据Id进行Distinct) 

[code]var distinctList = RegInfoList.GroupBy(x => x.Id).Select(y => y.First());var distinctList = RegInfoList.GroupBy(x => x.Id).Select(y => y.FirstOrDefault());

3、知识点补充

3.1 Linq First 和 FirstOrDefault的区别

First() 方法

   返回序列中的第一个元素。

FirstOrDefault ()方法

   返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值 null。

注:如果返回的是对象, 建议使用FirstOrDefault ,并对返回的对象进行判空操作

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 【日常笔记】C# List集合去重复对象的方法