我一直在研究一个c#图像查看器,它将从我的计算机读取图像并将它们显示在程序中。按编号排序文件名
//foreach file in path display the filename
foreach (var filename in Directory.GetFiles(<path>))
{
MessageBox.show(filename);
}
//Get image by number
var image = Directory.GetFiles(<path>).elementatordefault(<picnumber>).tostring());
我的问题是,即使我的图片在顺序排列的文件夹中:1,2,3,4 ..... 12,13,14 .... 101,102,我的应用程序将显示该文件按以下顺序:1,101,102,12,13,2 ...
我将如何显示正确的图像,就像他们在电脑的文件夹? 我不敢相信我需要将每个文件添加到数组或列表中,然后执行排序算法...(我还需要分割文件路径和扩展名),但必须有一个更简单的方法来完成此操作,任何帮助将非常感激。
实现[自然排序](http://stackoverflow.com/questions/248603/natural-sort-order-in-c-sharp)。 – CodeCaster
'Directory.GetFiles'不会对文件名施加任何命令,Windows资源管理器可能会这样。您想要的排序类型称为“自然排序”,并且一如既往,除非有问题的代码保证以您想要的方式排序的排序数据,否则您需要自行排序数据(如果需要排序)。 –
不能使用linq?你有没有试过用linq命令他们?如果它返回一个字符串数组,请检查这个其他StackOverflow Post [在C#中对字符串数组排序](http://stackoverflow.com/questions/6167068/sorting-string-array-in-c-sharp) – rmjoia