我正在尝试根据文件名订购一组文件。输入是一个目录,其中包含以下文件:
f0.vesperdp
f1.vesperdp
f2.vesperdp
....
f9.vesperdp
f10.vesperdp
f11.vesperdp
f12.vesperdp
我已经构建了这个 LINQ 查询来对它们进行排序:
if (Directory.Exists(path))
{
var directoryInfo = new DirectoryInfo(path);
var files = from file in directoryInfo.EnumerateFiles()
.Where(f => f.Extension == PAGE_FILE_EXTENSION)
orderby file.Name.Substring(1, file.Name.Length - 1) ascending
select file.FullName;
return files.ToArray<string>();
}
但他们回来了
f0.vesperdp
f1.vesperdp
f10.vesperdp
....
f19.vesperdp
f2.vesperdp
f20.vesperdp
f21.vesperdp
我需要使用自然顺序(从 0 到 n as )对它们进行排序f0,f1,f2...,f9,f10,f11
如何修复我的 orderby 过滤器以匹配这个?或者,如果有其他方法,我该如何实现?提前致谢。