我的逻辑是这样的:
db.table.GroupBy(t => new { t.A, t.B}).Select( t => new { t.A, t.B, t.C, t.D});
起初,我认为Distinct()
会有所帮助......但绝对不会。
请参阅...我只想采用A and B
的不同组合,但请选择A, B, C, D
。
答案 0 :(得分:3)
要获得A
和B
的唯一组合,您只需从Key
属性中获取它们,那么您必须决定C
和D
你想要的价值观。在这里,我只是从每个A
- B
组合的第一行中提取它们,但您可以执行其他聚合,例如Min
,Max
或{{1} }。
Average
诀窍是要了解db.table.GroupBy(t => new {t.A, t.B})
.Select(g => new {g.Key.A, g.Key.B, g.First().C, g.First().D});
为您提供GroupBy
而IEnumerable<IGrouping<TKey, TResult>>
为IGrouping<TKey, TResult>
并且IEnumerable<TResult>
属性为Key
}。因此,您在TKey
中使用的lambda根据您分组的内容处理具有Select
的内容,并且是针对该唯一键值分组的所有项目/行的集合。 / p>