C# List集合去重使用lambda表达式

时间:2023-03-08 19:31:19
name age sex
Lucy 22 woman
Lily 23 woman
Tom 24 man
Lucy 22 woman
Lily 23 woman
LiLei 25 man
List<Person> list_persons = new List<Person>(new Person("Lucy",,"woman"),new Person("Lily",,"woman"),new Person("Tom",,"man"),new Person("Lucy",,"woman"),new Person("Lily",,"woman"),new Person("LiLei",,"man"));

如同上表中,名字(name)中重复的想要去除,使用linq进行去重的方法,使用Distinct()根本无法达到要求。那么:

var list_distinct = list_Persons.GroupBy(c => c.name).Select(c => c.First());

实际的意思是根据某一列进行分组,然后获取每一组的第一条数据,可以解决此次需求