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
         */
    }