如何按 C# 列表排序,以便重复项以其插入的相反顺序出现

如何按列表排序,使重复项以插入的相反顺序出现(考虑到我不会使用列表的插入方法在中间插入任何项)


以下面的例子为例:


public class Program

{

    public static void Main(string[] args)

    {

        List<KeyValuePair<int, string>> list = new List<KeyValuePair<int, string>>();


        list.Add(new KeyValuePair<int, string>(1, "A"));

        list.Add(new KeyValuePair<int, string>(3, "F"));

        list.Add(new KeyValuePair<int, string>(4, "G"));

        list.Add(new KeyValuePair<int, string>(2, "B"));

        list.Add(new KeyValuePair<int, string>(2, "C"));

        list.Add(new KeyValuePair<int, string>(3, "E"));

        list.Add(new KeyValuePair<int, string>(3, "D"));


        list=list.OrderBy(a=>a.Key).ToList();


        foreach(var item in list)

        {

            Console.WriteLine(item);

        }

    }

}

输出:


[1, A]

[2, B]

[2, C]

[3, F]

[3, E]

[3, D]

[4, G]

我希望重复的顺序与插入的顺序相反,例如 F、E、D 应显示为 D、E、F。


我虽然 orderByDescending 可以解决问题,但这也会保持插入的顺序。


摇曳的蔷薇
浏览 173回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP