c# - 按多列排序 List<string[]>

标签 c# arrays list sorting

我有一个列表,我想按许多列对它进行排序。例如,string[] 有 5 个元素(5 列)而 List 有 10 个元素(10 行)。例如,我想按第 1 列开始排序,然后按第 3 列排序,然后按第 4 列排序。

如何使用 C# 以最简单的方式完成它?

我想到了这样的算法:

  1. 删除与我不想用于排序的那些列对应的值
  2. 为剩下的每一列找到可用于存储其值的最长字符串
  3. 将每一行更改为字符串,其中每个单元格占用的字符数与给定列的值的最大字符数相同
  4. 为每个字符串值分配索引
  5. 对这些字符串值进行排序
  6. 借助已排序的索引对真实数据进行排序

但是我觉得这个算法很烂。如果可能的话,您能否建议我使用 C# 和 .NET 的现有功能的更好方法?

最佳答案

List<string[]> list = .....

var newList = list.OrderBy(x => x[1]).ThenBy(x => x[3]).ThenBy(x => x[4]).ToList();

关于c# - 按多列排序 List<string[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17009222/

相关文章:

c# - 如何从 cmd 获取参数到正在运行的 WPF 应用程序

c# - 如何通过单击按钮动态生成图片框?

c# - TestStack/White 不返回应用程序的任何窗口

c# - 标签 MVVM 中显示的 WPF 百分比状态

arrays - 使用 Array.FindAll 方法查找满足条件的子数组

PHP 存储数组到数据库的逻辑问题

c - C语言程序从文件中读取信息

list - 类型错误:列表索引必须是整数,而不是 float

Python 类型错误 : unhashable type: 'list'

python - 将字符串的字符分隔成列表(python)