【发布时间】:2010-10-21 13:58:04
【问题描述】:
在对具有整数值的字符串列表进行排序时,我遇到了一个奇怪的问题。但是,某些值可以以某些字符为前缀。
例如
// B1, 5, 50, A10, 7, 72, B3, A1, A2
基本上都有页码,应该这样排序:
// A1, A2, A10, B1, B3, 5, 7, 50, 72
但是如果我使用默认字符串排序,那么这些将被排序为
// A1, A10, A2, B1, B3, 5, 50, 7, 72
在 C# 中有任何解决方案吗?
【问题讨论】:
-
你可以使用我整理并清理了一下的
NaturalStringComparer(不记得我从哪里得到它的基础)。它使用 Skizz 提到的 Win32 函数 StrCmpLogicalW。 my.opera.com/Svishy/blog/2009/03/02/natural-sorting