我有一个文件名数组,我想按数字样式排序,请给我一个解决方案.
例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])
我有以下示例代码:
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)