C# 为什么我的文件数组不是按数字顺序排列的?
通常以手动升序,我会得到如下结果:C# 为什么我的文件数组不是按数字顺序排列的?,c#,.net,arrays,file,sorting,C#,.net,Arrays,File,Sorting,通常以手动升序,我会得到如下结果: 1 1001 1006 1008 1009 101 1016 1017 1019 1026 .... 如何对该数组进行排序,使所有内容都按数字顺序排列???列表按字母顺序排列。你想要的是把它们按数字顺序排列。如果它们是数字,您可以这样做: 如果您想在仍然使用linq的情况下过滤掉不是数字的文件名,可以执行以下操作: Directory.GetFiles(@"C:\Users\user\Downloads\CaptchaCollection\Small").
1
1001
1006
1008
1009
101
1016
1017
1019
1026
....
如何对该数组进行排序,使所有内容都按数字顺序排列???列表按字母顺序排列。你想要的是把它们按数字顺序排列。如果它们是数字,您可以这样做: 如果您想在仍然使用linq的情况下过滤掉不是数字的文件名,可以执行以下操作:
Directory.GetFiles(@"C:\Users\user\Downloads\CaptchaCollection\Small").
Select(name => int.Parse(Path.GetFileNameWithoutExtension(name))).
OrderBy(number => number).
ToArray();
名单是按字母顺序排列的。你想要的是把它们按数字顺序排列。如果它们是数字,您可以这样做: 如果您想在仍然使用linq的情况下过滤掉不是数字的文件名,可以执行以下操作:
Directory.GetFiles(@"C:\Users\user\Downloads\CaptchaCollection\Small").
Select(name => int.Parse(Path.GetFileNameWithoutExtension(name))).
OrderBy(number => number).
ToArray();
可能重复的可能重复的可能重复的感谢如此之多:@Steve感谢你指出这一点,以防我不小心把一些非数字放在那里。非常感谢:@Steve感谢你指出这一点,以防我不小心把一些非数字放在那里。
Directory.GetFiles(@"C:\Users\user\Downloads\CaptchaCollection\Small").
Select(name => int.Parse(Path.GetFileNameWithoutExtension(name))).
OrderBy(number => number).
ToArray();
Directory.GetFiles(@"C:\Users\user\Downloads\CaptchaCollection\Small").
Select(nameWithExtension => Path.GetFileNameWithoutExtension(nameWithExtension)).
Where(name => {int number; return int.TryParse(name, out number);}).
Select(name => int.Parse(name)).
OrderBy(number => number).
ToArray();