<分区>
一段时间以来,我一直在寻找解决方案。
当我使用字符串排序对下面的内容进行排序时,我有一个列表:
10
10b
1111
1164
1174
23
23A
23B
23D
23E
我真的希望列表是:
10
10b
23
23A
23B
23D
23E
1111
1164
1174
数字排序也不起作用。
<分区>
一段时间以来,我一直在寻找解决方案。
当我使用字符串排序对下面的内容进行排序时,我有一个列表:
10
10b
1111
1164
1174
23
23A
23B
23D
23E
我真的希望列表是:
10
10b
23
23A
23B
23D
23E
1111
1164
1174
数字排序也不起作用。
最佳答案
如果你有 LINQ,你可以使用 OrderBy
:
Regex digitPart = new Regex(@"^\d+", RegexOptions.Compiled);
...
myList.OrderBy(x => int.Parse(digitPart.Match(x).Value))
关于c# - 用于自然排序的 IComparer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8568696/