【发布时间】:2022-01-16 13:28:47
【问题描述】:
正在寻找可以帮助我使用 C#、LINQ 的人。
我有一个Dictionary<int,int>,我要这样订购:.OrderBy(_ => _.Value).ThenBy(_ => ThisMethodReturnsAnotherIReadOnlyDict<int,int>()).ThenByDescending(_ => _.Key)。
我想要的是按第一个字典的值排序,然后如果仍然有相等的值,我希望ThisMethodReturnsAnotherIReadOnlyDict<int,int>() 打破这条平局。这个ThisMethodReturnsAnotherIReadOnlyDict 的第一个键/值打破平局并处于领先地位。最后,如果一切都失败了,那么按它的键降序排序。
类似的一些数据:
(第一本词典)
[1,400]
[2,550]
[3,200]
[4,200]
(第二本词典)
[3,50]
[4,140]
[2,600]
[1,700]
对于这种情况,我希望我的订单返回:[3,50]
有人可以帮忙吗? 谢谢!
【问题讨论】:
-
在
Dictionary<>的上下文中,“第一个键/值”是什么意思?他们没有秩序…… -
这注定要失败。 "出于枚举的目的,字典中的每个项目都被视为一个
KeyValuePair<TKey,TValue>结构,表示一个值及其键。返回项目的顺序是未定义的。" 来源:MSDN Dictionary<TKey,TValue> Class
标签: c# linq entity-framework-core