当前位置:  开发笔记 > 编程语言 > 正文

排序列表<string>,如Excel列排序

如何解决《排序列表<string>,如Excel列排序》经验,为你挑选了1个好方法。

请考虑此清单:

"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)`等测试自己.
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有