我们说我们有字典:Dict('a' => 2, 'b' => 3, 'c' => 2, 'd' => 4, 'e' => 2)
我用过:
var items = from pair in Dict orderby pair.Value descending select pair;
一切都很好,输出是:
d: 4
b: 3
c: 2
e: 2
a: 2
现在我想按字母顺序对具有相同值的键进行排序,以获得:
d: 4
b: 3
a: 2
c: 2
e: 2
但我不知道如何制作它 有什么想法吗?
答案 0 :(得分:8)
按2个值排序,语法为:
var items = from pair in Dict
orderby pair.Value descending,
pair.Key
select pair;
答案 1 :(得分:8)
如果我正确理解你的问题,那么它就像:
一样简单var items = Dict.OrderByDescending(r=> r.Value)
.ThenBy(r=> r.Key);
您需要使用Enumerable.ThenBy
(或Enumerable.ThenByDescending
根据您的要求在多个字段上订购)
答案 2 :(得分:2)
var dict = new Dictionary<string, int>
{
{"a", 2},
{"b", 3},
{"c", 2},
{"d", 4},
{"e", 2}
};
var sorted = dict.OrderByDescending(x => x.Value).ThenBy(x => x.Key);