根据 2 个因素对字典进行排序
Sort dictionary based on 2 factors
我有一本字典,它的键是一个字符串,值是一个对象列表。我想根据 2 个因素对其键进行排序,即列表的大小和对象 ID。这些值已排序,因此列表中的第一个元素始终是最小的 id。
到目前为止,我设法使用 order by 按列表中元素的数量对其进行排序,但现在我很难根据其他因素进行排序。
示例:字典 X 包含当前 keys/values
["A",{2,4,5,6}]
["B",{6}]
["C",{1}]
["D",{0,1}]
["E",{0,99,88,66}]
排序后应该是
["E",{0,99,88,66}]
["A",{2,4,5,6}]
["D",{0,1}]
["C",{1}]
["B",{6}]
这是我的资料:
Public MyObject{
public Int Id{ get; set;}
}
var dictionary = new Dictionary<string, List<MyObject>>();
var dictionarySortedByCount = dictionary.OrderBy(x => x.Value.Count).Reverse().ToDictionary(x => x.Key, x => x.Value);
如有任何帮助,我们将不胜感激。
您是否尝试过在第一个订单条件之后添加另一个订单条件,如下所示?
var dictionarySortedByCount = dictionary
.OrderByDescending(x => x.Value.Count)
.ThenBy(x => x.Value[0].ObjectId)
.ToDictionary(x => x.Key, x => x.Value);
我有一本字典,它的键是一个字符串,值是一个对象列表。我想根据 2 个因素对其键进行排序,即列表的大小和对象 ID。这些值已排序,因此列表中的第一个元素始终是最小的 id。
到目前为止,我设法使用 order by 按列表中元素的数量对其进行排序,但现在我很难根据其他因素进行排序。
示例:字典 X 包含当前 keys/values
["A",{2,4,5,6}]
["B",{6}]
["C",{1}]
["D",{0,1}]
["E",{0,99,88,66}]
排序后应该是
["E",{0,99,88,66}]
["A",{2,4,5,6}]
["D",{0,1}]
["C",{1}]
["B",{6}]
这是我的资料:
Public MyObject{
public Int Id{ get; set;}
}
var dictionary = new Dictionary<string, List<MyObject>>();
var dictionarySortedByCount = dictionary.OrderBy(x => x.Value.Count).Reverse().ToDictionary(x => x.Key, x => x.Value);
如有任何帮助,我们将不胜感激。
您是否尝试过在第一个订单条件之后添加另一个订单条件,如下所示?
var dictionarySortedByCount = dictionary
.OrderByDescending(x => x.Value.Count)
.ThenBy(x => x.Value[0].ObjectId)
.ToDictionary(x => x.Key, x => x.Value);