如何在x.name上使用distinct进行以下操作?
var x= db.Cs.Select(x => new{name=x.name,id=x.id}).Distinct().ToList();
根据以下示例数据:
name, id
joe, 1
joe, 2
joe, 3
我使用上面的独特查询获取整个集合:
name, id
joe, 1
joe, 2
joe, 3
我真正想要的显然是一个独特的行,但我仍然想要一个标识符(即):
name, id
joe, 1
答案 0 :(得分:3)
完成Stephane的帖子。他的代码的结果是IGrouping ....如果你想要你的id / name匿名类型,只需添加:
var x = db.Cs.Select(x => new { x.name, x.id})
.GroupBy(x => x.name)
.Select(g => g.First())
答案 1 :(得分:1)
您可以使用GroupBy方法:
var x = db.Cs.Select(x => new { x.name, x.id}).GroupBy(x => x.name);
然后你会得到一个字典,其中键是你的投影的名称和价值。
或者如果你真的想要使用不同的,你可以编写自己的IEqualityComparer并使用正确的Distinct overload。