以下代码可以从指定目录获取所有后缀为 *.png 和 *.jpg 的文件列表,并按文件名排序。
DirectoryInfo di = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/Images/"));
List<string> fileNames = di.GetFiles("*.*")
.Where(f => f.Name.EndsWith(".png") || f.Name.EndsWith(".jpg"))
.OrderBy(f => f.Name).Select(f => f.Name).ToList();
我希望通过优先按文件扩展名和文件名排序来进一步完善上述功能,因此:
DirectoryInfo di = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/Images/"));
List<string> fileNames = di.GetFiles("*.*")
.Where(f => f.Name.EndsWith(".png") || f.Name.EndsWith(".jpg"))
.OrderBy(f => new {f.Extension, f.Name}).Select(f => f.Name).ToList();
这表示一个运行时错误:至少有一个对象必须实现IComparable
,并怀疑 new {f.Extension, f.Name}
的OrderBy可能不正确?
我该如何修复它?