【发布时间】:2018-05-21 22:02:30
【问题描述】:
如何按列表排序,以便重复项以插入的相反顺序出现(考虑到我不会使用列表的插入方法在中间插入任何项目)
举个例子:
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]
我想要以插入相反顺序的重复顺序,例如。 G。 F、E、D 应显示为 D、E、F。
我虽然 orderByDescending 可以解决问题,但也可以保持插入顺序。
【问题讨论】:
-
您是在钥匙上订购,钥匙是相同的,因此不会改变这些物品的原始顺序。
-
你的相反观点是什么?自然反转或您的列表顺序
-
插入顺序是什么?名单?
-
你确定这个要求,因为它有一个非常具体的含义:这样重复的项目就会以它们插入的相反顺序出现。?
-
@Randeep 您打算如何缓解列表中间可以插入项目的问题?