C# 加载/保存图像顺序错误

C# 加载/保存图像顺序错误,c#,image,save-image,loading-image,C#,Image,Save Image,Loading Image,我得到了一个只有PNG图像(580个图像)的目录。 我使用此函数将图像加载到内存中 private List<Bitmap> images = new List<Bitmap>(); foreach (String s in Directory.GetFiles(@"frames\", "*.png")) { images.Add(new Bitmap(s)); } private List image=new List(); fo

我得到了一个只有PNG图像(580个图像)的目录。 我使用此函数将图像加载到内存中

private List<Bitmap> images = new List<Bitmap>();

foreach (String s in Directory.GetFiles(@"frames\", "*.png"))
     {
        images.Add(new Bitmap(s));
     }
private List image=new List();
foreach(Directory.GetFiles(@“frames\”,“*.png”)中的字符串s)
{
添加(新位图);
}
但加载后,如果我尝试使用以下命令将所有图像保存到hdd:

System.IO.Directory.CreateDirectory("result");
for (int i = 0; i < images.Count; i++)
   {
      images[i].Save(Application.StartupPath + "\\result\\img" + i + ".png", ImageFormat.Png);
   }
System.IO.Directory.CreateDirectory(“结果”);
对于(int i=0;i
有些图像在加载到内存之前以错误的顺序保存


可能有什么问题?

如果需要对文件名进行排序,则需要手动进行排序,因为GetFiles返回文件名的顺序无法保证

即,只需按名称排序:

foreach (String s in Directory.GetFiles(@"frames\", "*.png").OrderBy(t=>t))
{
 ...
}
访问此


请不要在标题前加上“C”之类的前缀。这就是标记的用途。当顺序很重要时,我尽量避免使用
foreach
,严格地说,它不能保证按您期望的顺序进行枚举。但是,我不确定这是否是您的问题的根源。最初是按什么度量值排序的-名称、ext、修改日期、创建日期。。。?