我一直在研究一个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 ...
我如何以正确的方式显示正确的图像? 我无法相信我需要将每个文件添加到数组或列表然后执行排序算法...(我还需要拆分文件路径和扩展名)必须有一个更简单的方法来执行此操作,任何非常感谢帮助。
答案 0 :(得分:2)
我终于解决了如何按照自然顺序对文件进行排序的问题。或许有人会发现这段代码也很有用。
List<string> mylist = new List<string> { };
foreach (var f in Directory.GetFiles(FilePath1))
{
mylist.Add(f);
}
var result = mylist.OrderBy(x => x.Length);
答案 1 :(得分:0)
如果您知道文件名的格式,则需要对自己的比较器进行排序和实现。 此主题可能会对您有所帮助:Sorting mixed numbers and strings