作者:ERIK又 | 2023-09-09 09:25
请考虑此清单:
"A", "C", "AB", "AD", "N", "Z", "AC"
我想对此字符串(这是Excel列)进行排序,如Excel列排序.
我想要这样的结果:
"A", "C", "N", "Z", "AB", "AC", "AD"
是否可以使用LINQ OrderBy?
什么是最好的方法?
谢谢
1> Reza ArabQae..:
更新:感谢@JeppeStigNielsen的正确评论,我StringComparer.Ordinal
在所有文化中都添加了支持:
var result = List.OrderBy(p=>p.Length).ThenBy(p=>p,StringComparer.Ordinal);
我想了一下.那应该是`.ThenBy(p => p,StringComparer.Ordinal)`最后.否则,它将以复杂的方式依赖于当前的文化.例如,使用_Lithuanian(立陶宛)_`"lt-LT"`你会在"R"之前得到"Y"`(字母Y在立陶宛语的I和J之间整理).另一个例子,在_Czech(捷克共和国)_`"cs-CZ"`我们在"CH"之前得到"DI"`因为CH是[有向图](https://en.wikipedia.org/wiki/ Ch_(digraph)#Czech)在捷克语中,在其整理后出现在H之后.使用`StringComparer.Create(new CultureInfo("lt-LT"),false)`等测试自己.