dro*_*ned 2 c# linq group-by sql-order-by linq-query-syntax
我有按特定属性分组的对象列表。我需要根据其他属性对该列表进行排序,但始终需要保留分组。因此,例如,如果列表类似于:
{ id=1, partNumber = 100 }
{ id=2, partNumber = 500 }
{ id=2, partNumber = 300 }
{ id=2, partNumber = 600 }
{ id=3, partNumber = 550 }
{ id=3, partNumber = 990 }
{ id=4, partNumber = 200 }
{ id=5, partNumber = 300 }
Run Code Online (Sandbox Code Playgroud)
那么按零件号升序排序后的结果将是:
{ id=1, partNumber = 100 }
{ id=4, partNumber = 200 }
{ id=5, partNumber = 300 }
{ id=2, partNumber = 400 }
{ id=2, partNumber = 500 }
{ id=2, partNumber = 600 }
{ id=3, partNumber = 550 }
{ id=3, partNumber = 990 }
Run Code Online (Sandbox Code Playgroud)
它按每个组中的最小PartNumber排序(如果降序,则为最大),但必须按ID分组。我已经尝试过.OrderBy()和.GroupBy()的各种组合,但是我似乎无法获得所需的东西。
var orderedList =
list.GroupBy(i => i.id)
.OrderBy(g => g.Min(i => i.partNumber))
// and if you want to flatten the groupings back out
.SelectMany(g => g);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2560 次 |
| 最近记录: |