如何按列表排序,使重复项以插入的相反顺序出现(考虑到我不会使用列表的插入方法在中间插入任何项)
以下面的例子为例:
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 可以解决问题,但这也会保持插入的顺序。
相关分类