我有一个清单
Class => Second Third Second Fourth Fifth Second
Position => 2 3 2 5 1 3
我想创建具有Same类和相同Positon
的新列表即新名单
Class => Second Second
Postion => 2 2
Class => Second
Position => 3
Class => Third
Position => 3
等等
我可以在父列表上使用muliple GroupBy来生成这些不同的列表或首先我应该 GroupBy“Class”然后通过“Position”?
答案 0 :(得分:6)
...至于如何你一次分两件事:
var groupedByTwoThingsAtOnce = myList
.GroupBy(i => new { Class = i.Class, Position = i.Position });
答案 1 :(得分:5)
立即按position
和class
分组。一个GroupBy()
。
例如:
var groupedByTwoThingsAtOnce = myList
.GroupBy(i => new { Class = i.Class, Position = i.Position });
答案 2 :(得分:3)
您可以使用匿名类型进行分组,然后使用GroupBy任意数量的属性。 可能类似于以下
.GroupBy(item => new {ClassGroup = item.Class, PositionGroup = item.Position})
如果您可以使用匿名类型(例如,如果您需要从当前方法返回分组结果),您还可以尝试使用元组
.GroupBy(item => new Tuple<string, int>(item.Class, item.Position))