相关疑难解决方法(0)

C#中的自然排序顺序

任何人都拥有良好的资源或在C#中为FileInfo数组提供自然顺序排序的样本?我正在实现IComparer我的各种界面.

c# sorting file natural-sort

124
推荐指数
11
解决办法
5万
查看次数

以用户友好的方式对包含数字的字符串进行排序

习惯于对字符串进行排序的标准方法,当我注意到Windows以某种高级方式按名称对文件进行排序时,我感到很惊讶.让我给你举个例子:

Track1.mp3
Track2.mp3
Track10.mp3
Track20.mp3

我认为这些名称是根据字母和数字分别比较(在排序期间).

另一方面,以下是以标准方式排序的相同列表:
Track1.mp3
Track10.mp3
Track2.mp3
Track20.mp3

我想在Delphi中创建一个比较算法,让我以相同的方式对字符串进行排序.起初我认为比较两个字符串的连续字符就足够了.当在两个字符串的某个位置找到一个数字时,我会读取它们后面的所有数字以形成一个数字,然后比较这些数字.

举个例子,我将用这种方式比较"Track10"和"Track2"字符串:
1)读取字符时它们是相等的,而它们是字母:"Track","Track"
2)如果找到一个数字,读取以下所有数字:"10","2"
2a)如果它们相等,则转到1或者完成
Ten大于2,因此"Track10"大于"Track2"

似乎一切都会好的,直到我在测试期间发现Windows认为"Track010"低于"Track10",而我认为第一个更长,因为它更长(没有提到根据我的算法字符串将是相等的,这是错误的).

你能否告诉我Windows如何按名称对文件进行排序,或者你有一个我可以使用的即用型算法(使用任何编程语言)?

非常感谢!
马里乌什

sorting algorithm text numbers

18
推荐指数
1
解决办法
2万
查看次数

标签 统计

sorting ×2

algorithm ×1

c# ×1

file ×1

natural-sort ×1

numbers ×1

text ×1