您可以使用 LINQ 对文件进行排序:
var tifs = Directory.EnumerateFiles(path, "*.tif", SearchOption.TopDirectoryOnly)
.Select(fn => new { fn, name = Path.GetFileNameWithoutExtension(fn) })
.Select(x => new
{
x.fn,
x.name,
major = int.Parse(x.name.Split('.')[0]),
minor = int.Parse(x.name.Split('.')[1])
})
.OrderBy(x => x.major).ThenBy(x => x.minor);
请注意,您需要添加using System.Linq
并且这还不是故障安全的。它要求文件始终具有这种格式,否则int.Parse
会抛出(您可以使用int.TryParse
)。
您可以使用 foreach 来枚举结果:
foreach(var x in tifs)
Console.WriteLine("File:{0}", x.fn);
编辑:但diar1.Sort()
如果您只想按字母顺序排序,您也可以简单地使用(如我的评论中所述)。