用于自然排序的IComparer [英] IComparer for natural sorting
本文介绍了用于自然排序的IComparer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
一段时间以来,我一直在寻找解决方案.
I have been hunting around for a solution to this for a while now.
当我使用字符串排序对以下内容进行排序时,我有以下列表:
When I sort the below using a string sort I have a list of:
10
10b
1111
1164
1174
23
23A
23B
23D
23E
我真的希望列表为:
10
10b
23
23A
23B
23D
23E
1111
1164
1174
数字排序也不起作用.
推荐答案
如果您有LINQ,则可以使用OrderBy
:
If you have LINQ, you can use OrderBy
:
Regex digitPart = new Regex(@"^\d+", RegexOptions.Compiled);
...
myList.OrderBy(x => int.Parse(digitPart.Match(x).Value))
这篇关于用于自然排序的IComparer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文