相关疑难解决方法(0)

如何按数字样式对字符串数组进行排序?

我有一个文件名数组,我想按数字样式排序,请给我一个解决方案.

例1:

原始数组:[name99.txt, name98.txt, name100.txt]
排序数组:( [name98.txt, name99.txt, name100.txt]
使用字符串排序,排序结果是[name100.txt, name98.txt, name99.txt])

例2:

原始数组:[a99.txt, b98.txt, b100.txt]
排序数组:( [a99.txt, b98.txt, b100.txt]
使用字符串排序,排序结果是[a99.txt, b100.txt, b99.txt])

c# arrays sorting string

5
推荐指数
1
解决办法
7774
查看次数

Array.Sort用于带数字的字符串

我有以下示例代码:

List<string> test = new List<string>();
test.Add("Hello2");
test.Add("Hello1");
test.Add("Welcome2");
test.Add("World");
test.Add("Hello11");
test.Add("Hello10");
test.Add("Welcome0");
test.Add("World3");
test.Add("Hello100");
test.Add("Hello20");
test.Add("Hello3");

test.Sort();
Run Code Online (Sandbox Code Playgroud)

但是会发生什么,test.Sort将数组排序为:

"Hello1", 
"Hello10", 
"Hello100", 
"Hello11", 
"Hello2", 
"Hello20", 
"Hello3", 
"Welcome0", 
"Welcome2", 
"World", 
"World3"
Run Code Online (Sandbox Code Playgroud)

有没有办法对它们进行排序,以便它们string也具有正确的数字顺序?(如果结尾没有数字string,那么string总是先行 - 按字母顺序排列)

预期产量:

"Hello1", 
"Hello2", 
"Hello3", 
"Hello10", 
"Hello11", 
"Hello20", 
"Hello100", 
"Welcome0", 
"Welcome2", 
"World", 
"World3"
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
830
查看次数

标签 统计

c# ×2

arrays ×1

sorting ×1

string ×1