排序列表<;字符串>;类似Excel列排序

本文关键字:排序 Excel 类似 gt 列表 字符串 lt | 更新日期: 2023-09-27 18:28:17

请考虑此列表:

"A", "C", "AB", "AD", "N", "Z", "AC"

我想像Excel列排序一样对这个字符串(即Excel列)进行排序。

我想要这样的结果:

"A", "C", "N", "Z", "AB", "AC", "AD"

是否可以使用LINQ OrderBy?

什么是最好的方法?

感谢

排序列表<;字符串>;类似Excel列排序

更新:感谢@JeppeStigNielsen的正确评论,我添加了StringComparer.Ordinal以支持所有文化:

var result = List.OrderBy(p=>p.Length).ThenBy(p=>p,StringComparer.Ordinal);

按列名长度排序("C"在"AB"之前),然后对相同长度的字符串使用正常的字母(字符串)排序("AC"在"AD"之前)。

var columns = new[] { "A", "C", "AB", "AD", "N", "Z", "AC" };
var sorted = columns.OrderBy(c => c.Length)
                    .ThenBy(c => c);