我一直在研究一個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