我有一个这样的列表:
var l = new List<string> {"bla 1.txt","bla 2.txt","bla 10.txt","bla 3.txt"};
如果我调用 l.Sort(),列表将按 1、10、2、3 的顺序排序,这从纯字符串的角度来看是有意义的,但从用户的角度来看很糟糕。
因为我不想/不能强制我的用户将它们命名为 01、02、03,...我想知道是否有内置方法或简单算法来正确检测和排序数字,这样我就有 1,2,3,10?由于数字只有 1 或 2 个字符长(即不超过 99),我可以做一个正则表达式,暂时在所有 1 位数字前加上 0 和排序,但在我重新发明轮子之前,我想知道是否已经存在一些东西?
.net 3.5SP1 如果重要,不是 4.0
最佳答案
最好的方法是使用IComparer
。这已经完成并且可以found on code project .
关于c# - 按数字对字符串列表进行排序(1,2,...,9,10 而不是 1,10,2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4788227/