c# - 按数字对字符串列表进行排序(1,2,...,9,10 而不是 1,10,2)

标签 c# .net sorting numbers

我有一个这样的列表:

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/

相关文章:

c# - 按值将字典分组

c# - 无法解析 Unity 容器中的字典

c# - 从 3.5 更新到 4.0 时出现 WCF 问题

c# - Server.UrlEncode(string s)... 没有

c# - 如何在 C# 中使用动态对象实现事件访问器

C# 在使用反射时确定一个 Nullable 属性 DateTime 类型

c# - CAB 与 Prism 的比较

algorithm - 对包含超过 100,000,000 条记录的文本文件进行排序

java - 对包含数字的字符串数组进行排序

使用 Collections.sort 的 Java 特定练习