C# 如何使用LINQ按降序对值排序并按字母顺序输入?
这就是我所做的C# 如何使用LINQ按降序对值排序并按字母顺序输入?,c#,.net,linq,C#,.net,Linq,这就是我所做的 Dictionary<string, int> colorRank = new Dictionary<string, int>(); 它是按降序排列值,而不是按字母顺序排列键。有什么建议吗 这种行为是意料之中的。您正在覆盖第一个排序。只有在值中有重复的值时,才能注意到差异,然后该值的键列表将按预期的字母顺序排序。因此,您的代码是正确的,您的期望也是正确的。注意下面示例中代码的10键 public static void methodSort()
Dictionary<string, int> colorRank = new Dictionary<string, int>();
它是按降序排列值,而不是按字母顺序排列键。有什么建议吗 这种行为是意料之中的。您正在覆盖第一个排序。只有在值中有重复的值时,才能注意到差异,然后该值的键列表将按预期的字母顺序排序。因此,您的代码是正确的,您的期望也是正确的。注意下面示例中代码的10键
public static void methodSort()
{
Dictionary<string, int> colorRank = new Dictionary<string, int>();
//Code to fill the dictionary.
colorRank.Add("bla2", 10);
colorRank.Add("bla1", 1);
colorRank.Add("bla3", 11);
colorRank.Add("blay", 5);
colorRank.Add("blay1", 10);
var result = colorRank.OrderByDescending(i => i.Value).ThenBy(i => i.Key);
foreach (var v in result)
{
Console.WriteLine($"{v.Key} {v.Value}");
}
/* Output
bla3 11
bla2 10
blay1 10
blay 5
bla1 1
*/
}
publicstaticvoidmethodsort()
{
字典colorRank=新字典();
//代码来填充字典。
添加(“bla2”,10);
添加(“bla1”,1);
添加(“bla3”,11);
添加(“blay”,5);
添加(“blay1”,10);
var result=colorRank.OrderByDescending(i=>i.Value),然后是by(i=>i.Key);
foreach(结果中的var v)
{
WriteLine($“{v.Key}{v.Value}”);
}
/*输出
bla3 11
bla2 10
blay1 10
布莱5
bla11
*/
}
这应该是正确的代码。你能提供一个例子吗?你期望得到什么,结果是什么?@gunr217没关系,这是正确的代码。我误读了结果,谢谢你的评论。
public static void methodSort()
{
Dictionary<string, int> colorRank = new Dictionary<string, int>();
//Code to fill the dictionary.
colorRank.Add("bla2", 10);
colorRank.Add("bla1", 1);
colorRank.Add("bla3", 11);
colorRank.Add("blay", 5);
colorRank.Add("blay1", 10);
var result = colorRank.OrderByDescending(i => i.Value).ThenBy(i => i.Key);
foreach (var v in result)
{
Console.WriteLine($"{v.Key} {v.Value}");
}
/* Output
bla3 11
bla2 10
blay1 10
blay 5
bla1 1
*/
}