Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按编号排列文件名_C#_Image_Viewer - Fatal编程技术网

C# 按编号排列文件名

C# 按编号排列文件名,c#,image,viewer,C#,Image,Viewer,我一直在开发一个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>).eleme

我一直在开发一个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());
//路径中的foreach文件显示文件名
foreach(目录.GetFiles()中的var文件名)
{
show(文件名);
}
//按数字获取图像
var image=Directory.GetFiles().elementatordefault().tostring());
我的问题是,即使我的图像在文件夹中按顺序排列:1,2,3,4….12,13,14….101102,我的应用程序也会按以下顺序显示文件:1101102,12,13,2

我如何以正确的格式显示图像,就像它们在电脑文件夹中一样?
我不敢相信我需要将每个文件添加到数组或列表中,然后执行排序算法。。。(我还需要拆分文件路径和扩展名)必须有一种更简单的方法,如果您知道文件名的格式,请提供任何帮助。

您需要排序并实现自己的比较器。
此线程可能会帮助您:

如果您知道文件名的格式,您需要排序并实现自己的比较器。
此线程可能会帮助您:

我终于抽出时间来研究如何按“自然顺序”对文件进行排序,也许有人会发现此代码和我的做法一样有用

        List<string> mylist = new List<string> { };
        foreach (var f in Directory.GetFiles(FilePath1))
        {
            mylist.Add(f);
        }

        var result = mylist.OrderBy(x => x.Length);
List mylist=新列表{};
foreach(Directory.GetFiles(FilePath1)中的var f)
{
添加(f);
}
var result=mylist.OrderBy(x=>x.Length);

我终于抽出时间来研究如何按“自然顺序”对文件进行排序,也许有人会发现这段代码和我的做法一样有用

        List<string> mylist = new List<string> { };
        foreach (var f in Directory.GetFiles(FilePath1))
        {
            mylist.Add(f);
        }

        var result = mylist.OrderBy(x => x.Length);
List mylist=新列表{};
foreach(Directory.GetFiles(FilePath1)中的var f)
{
添加(f);
}
var result=mylist.OrderBy(x=>x.Length);

Implement.
Directory.GetFiles
不会对文件名施加顺序,Windows资源管理器可能会这样做。您需要的排序类型称为“自然排序”,并且一如既往,除非相关代码保证按您希望的方式对数据进行排序,否则您需要自己对数据进行排序。不能使用linq吗?你试过和linq一起点吗?如果它返回一个字符串数组,请检查另一个StackOverflow Post@rmjoia我没有尝试过,并且,如果用户在资源管理器中更改了排序顺序(例如,更改为修改时间的递减),则会出现以下情况:Implement.
Directory.GetFiles
不会对文件名施加顺序,Windows资源管理器可能会。您需要的排序类型称为“自然排序”,并且一如既往,除非相关代码保证按您希望的方式对数据进行排序,否则您需要自己对数据进行排序。不能使用linq吗?你试过和linq一起点吗?如果它返回一个字符串数组,请检查另一个StackOverflow Post@rmjoia我没有尝试过,如果用户在资源管理器中更改了排序顺序(例如,更改为降序时间),则会出现以下情况: