【发布时间】:2013-06-09 11:43:41
【问题描述】:
我有想要按多列排序的列表。例如,string[] 有 5 个元素(5 列),List 有 10 个元素(10 行)。例如,我想按第 1 列开始排序,然后按第 3 列,然后按第 4 列。
如何用 C# 以最简单的方式完成?
我想过这样的算法:
- 删除与我不想用于排序的列对应的值
- 为剩下的每一列查找可用于存储其值的最长字符串
- 将每一行更改为字符串,其中每个单元格占用的字符数与给定列的值的最大字符数一样多
- 为每个字符串值分配 int 索引
- 对这些字符串值进行排序
- 借助已排序的索引对真实数据进行排序
但我认为这个算法很糟糕。如果可能的话,您能否建议我使用 C# 和 .NET 现有功能的更好方法?
【问题讨论】:
-
只需调用
OrderBy()并委托查找比较对象。