【发布时间】:2018-06-09 01:13:39
【问题描述】:
我有一个包含很多列的表格数据,我需要对其进行多次排序。 例如这些列包含行号、名称、津贴、时间...
1, Peter, 2500, 2
2, Steve, 500, 1
3, Peter, 2500, 1
4, Peter, 2600, 2
5, Peter, 2800, 2
第一次按名称升序排序,结果为:
1, Peter, 2500, 2
3, Peter, 2500, 1
4, Peter, 2600, 2
5, Peter, 2800, 2
2, Steve, 500, 1
2nd 按余量降序排序,结果为:
5, Peter, 2800, 2
4, Peter, 2600, 2
1, Peter, 2500, 2
3, Peter, 2500, 1
2, Steve, 500, 1
3rd 按次升序排序,结果为:
5, Peter, 2800, 2
4, Peter, 2600, 2
3, Peter, 2500, 1
1, Peter, 2500, 2
2, Steve, 500, 1
由于某种原因,我们使用 SortedList 进行第一次排序,使用 IComparer 将项目添加到 SortedList 以允许重复键。 第一次按名称升序排序后,sortedList 为:
["Peter"] | 1
["Peter"] | 3
["Peter"] | 4
["Peter"] | 5
["Steve"] | 2
第一次排序已经完成,但是如何根据这个“主”排序列表进行第二次和第三次排序? 我的想法是第二类发生在具有相同密钥的邻居中,例如“彼得”。意味着只需要对第 1、3、4、5 行重新排序即可进行第二次排序。 但我想不出最好的办法。
【问题讨论】:
-
请点击此链接Here
-
我必须使用 SortedList。旧版本使用 SortedList 进行第一次排序。我需要添加多种新功能。
-
请为您的
IComparer提供代码;) -
@zcui93 2nd Sort 是基于一个 1st sort 结果,3rd sort 是基于2nd sort...对于2nd sore,只排序“Peter”的Key,对于3rd sort,只需要排序项目“2500”。我必须编写 2nd SortedList 和 3rd SortedList?
-
你提到你已经有一个
IComparer,可能你可以实现另一个来实现你想要的(虽然不太清楚你想要实现什么,例如你想要1个表或3个表? 你想要用户交互或只需要结果)。因此,您已经使用的IComparer代码是什么可能有助于在您的问题中列出。
标签: c# sorting sortedlist columnsorting