C#按名称中的部分排序来对目录中的文件进行排序?

时间:2014-10-15 02:16:12

标签: c#

我有像这样的目录中的文件 ....

当我加载文件时:

FileInfo[] filelistIF = direcinfo.GetFiles("*.jpg");
IMAGE-1-0853217IMG1.jpg 
IMAGE-1-0853218IMG3.jpg 
IMAGE-1-0853535IMG4.jpg 
IMAGE-1-0853536IMG5.jpg 
IMAGE-1-0853537IMG6.jpg 
IMAGE-1-0853538IMG7.jpg 
IMAGE-1-0853539IMG8.jpg 
IMAGE-2-0853435IMG2.jpg 
IMAGE-2-0853436IMG9.jpg 
IMAGE-2-0853437IMG10.jpg
IMAGE-2-0853438IMG11.jpg

我希望按'IMG'排序文件名,如:

IMAGE-1-0853217IMG1.jpg 
IMAGE-2-0853435IMG2.jpg 
IMAGE-1-0853218IMG3.jpg 
IMAGE-1-0853535IMG4.jpg 
IMAGE-1-0853536IMG5.jpg 
IMAGE-1-0853537IMG6.jpg 
IMAGE-1-0853538IMG7.jpg 
IMAGE-1-0853539IMG8.jpg 
IMAGE-2-0853436IMG9.jpg 
IMAGE-2-0853437IMG10.jpg
IMAGE-2-0853438IMG11.jpg

如何解决这个问题?请帮忙

1 个答案:

答案 0 :(得分:2)

如果您正在快速查找某些代码,并且您不关心其质量:

FileInfo[] filelistIF = direcinfo.GetFiles("*.jpg")
    .OrderBy(x =>
        int.Parse(x.Name.Substring(x.Name.IndexOf("IMG") + 3).Replace(".jpg", "")))
    .ToArray();