我在解释其他人的代码时遇到问题。
我知道你的行为,但我不明白你是怎么做的。行为:
- driverRemark有序号,可以链接到一个组,包含序号最小的备注的组应该先打印出来,依此类推,如果有2个备注序号最小,则最小的组应该先打印出来,除非为空,否则最后打印空。
有人能给我解释一下这是怎么回事吗?
var groupedDriverRemarks = driverRemarks
.GroupBy(dr => dr.RemarkGroup)
.OrderBy(g => g.Key == null)
.ThenBy(g => g.Key)
.OrderBy(gr => gr.Min(dr => dr.SeqNr))
.SelectMany(g => g.OrderBy(dr => dr.SeqNr))
.ToList();
return groupedDriverRemarks;
我不知道这个功能是如何操作的。它确实工作,但不知道为什么。
先谢了
我试着搜索所有不同的LINQ方法,并试图翻译它。但没有任何结果。
1条答案
按热度按时间brtdzjyr1#
下面是代码的注解版本:
使用多个排序并不是处理子排序的有效方法,
ThenBy
方法就是为此而设计的,所以只有一个排序可以正常工作。它仍然有两种,我不这么认为;t