以下工作正常,可從指定目錄中獲取* .png和* .jpg文件列表,並按文件名排序。Directory.GetFiles上的LINQ,使用多個排序標準進行過濾和排序
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();
這標誌一個運行時錯誤:At least one object must implement IComparable
和OrderBy new {f.Extension, f.Name}
可能是錯誤的?
我該如何解決這個問題?
哇!這很快,謝謝! – user2921851