C# 如何在c语言中对字典进行键排序#
我有一本字典,我想按它的键分类C# 如何在c语言中对字典进行键排序#,c#,.net,sorting,dictionary,C#,.net,Sorting,Dictionary,我有一本字典,我想按它的键分类 var dict = new Dictionary<int, string>(){ {1, "a"}, {3, "c"}, {2, "b"} }; 有没有办法使用自定义排序选项(如lambda)对字典进行排序?var dict=new Dictionary(){ {1,“a”}, {3,“c”}, {2,“b”} }; foreach(dict.OrderByDesc
var dict = new Dictionary<int, string>(){
{1, "a"},
{3, "c"},
{2, "b"}
};
有没有办法使用自定义排序选项(如lambda)对字典进行排序?var dict=new Dictionary(){
{1,“a”},
{3,“c”},
{2,“b”}
};
foreach(dict.OrderByDescending(x=>x.Key)中的变量k)
{
控制台写入线(k);
}
SortedDictionary有一个构造函数,您可以在其中传入一个IComparer,它应该允许您按照自己的喜好进行排序。foreach(dict.OrderByDescending(e=>e.Key)中的var kvp)
是的,但是如何将System.Linq.iorderenumerable
转换回字典
?您不能不丢失排序。字典没有分类。
var sortedDict = new SortedDictionary<int, string>(dict);
foreach (var k in sortedDict)
{
Console.WriteLine(k);
}
// Result:
[1, a]
[2, b]
[3, c]
// Desired result:
[3, c]
[2, b]
[1, a]
var dict = new Dictionary<int, string>(){
{1, "a"},
{3, "c"},
{2, "b"}
};
foreach (var k in dict.OrderByDescending(x => x.Key))
{
Console.WriteLine(k);
}