我有一个包含多个列表的列表<>。它基本上是一张表,每列与列一起存储为列表<>。每列不包含相同的类型。每个列表也是相同的长度(具有相同数量的元素)。基于另一个列表的C#排序列表
例如:
我有3个列表<>对象;一个列表,两个列表和三个列表。
//Not syntactically correct
List<DateTime> one = new List...{4/12/2010, 4/9/2006, 4/13/2008};
List<double> two = new List...{24.5, 56.2, 47.4};
List<string> three = new List...{"B", "K", "Z"};
我希望能够进行排序列表中的一个从最旧到最新: 一个= {2006年4月9日,2008年4月13日,2010/4/12};
所以要做到这一点,我把元素0移到了最后。
然后我想用同样的方法对列表中的两个和三个进行排序;将第一个移动到最后一个。
因此,当我排序一个列表时,我希望其他列表中相应索引中的数据也根据一个列表的排序方式进行更改。
我猜我必须以某种方式重载IComparer,但我觉得有一个我没有意识到的捷径。
所以我遍历每个列表的整体,并从数据创建一个数据结构。然后我对数据进行排序,然后将其放回列表中。这是有道理的,但似乎并不高效。它至少会工作,这比我目前的工作要好。谢谢。编辑:我不知道有3个项目,所以我不能使用一个结构。列表可能工作,但我不得不担心在大型铸造? – 2010-07-28 18:12:33
@John - 你是否收到来自不可控制源的这些列表? – ChaosPandion 2010-07-28 18:13:56
是的,我收到的List <>对象不能改变;他们可以在适当位置排序。 – 2010-07-28 18:15:07