c# 对集合 根据多个字段group by后,返回的集合中还有重复的元素

var list= from c in stuList group c by new { c.id,c.name,c.age } into g
select new { g.key.id ,g.key.name ,g.key.age }

另外还可能是name中包括了空格或者\0字符,导致两个看上去相同的name实际上是不同的。
你可以用 name.Trim() 处理下。

{ c.id,c.name,c.age }
这么写,只要它们任意两个不同,都会放在不同的组里。
比如
id name age
1 a 1
1 b 1
否则,你可以嵌套group by先对某个分组,再分组。

图片说明
图片说明

查询出来还有重复的话直接Distinct去重复就行了。