根据两个标准C#对列表进行分组

本文关键字:列表 标准 两个 | 更新日期: 2023-09-27 17:58:32

我有一个列表

Class =>       Second      Third   Second  Fourth  Fifth  Second
Position =>     2           3       2       5        1     3 

我想创建一个新的列表,它有相同的类以及相同的Positon

即新列表

Class  =>      Second       Second
Postion =>       2             2

Class  =>         Second
Position =>         3

Class  =>          Third
Position =>          3

等等

我可以在父列表上使用多个GroupBy来生成这些不同的列表吗?或者首先我应该按"类别"然后按"职位"分组?

根据两个标准C#对列表进行分组

。。。关于如何同时通过两件事进行分组:

var groupedByTwoThingsAtOnce = myList
    .GroupBy(i => new { Class = i.Class, Position = i.Position });

同时按positionclass分组。一个GroupBy()

例如:

var groupedByTwoThingsAtOnce = myList
   .GroupBy(i => new { Class = i.Class, Position = i.Position });

您可以使用匿名类型进行分组,然后使用GroupBy任意数量的属性。可能类似于以下

.GroupBy(item => new {ClassGroup = item.Class, PositionGroup = item.Position})

如果你可以使用匿名类型(例如,如果你需要返回当前方法的分组结果),你也可以尝试使用Tuple

.GroupBy(item => new Tuple<string, int>(item.Class, item.Position))