用于自然排序的IComparer [英] IComparer for natural sorting

查看:59
本文介绍了用于自然排序的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆