OrderByDescending不会更改列表中项目的顺序
本文关键字:项目 顺序 列表 OrderByDescending | 更新日期: 2023-09-27 18:25:16
以下按顺序返回文件夹
03-march
05-may
我如何修改以下代码以获得逆中的顺序
05-may
03-march
代码:
private void loadGrid()
{
List<FileArchive> fiList = new List<FileArchive>();
String path = Request.QueryString["Path"];
DirectoryInfo info = new DirectoryInfo(path);
FileInfo[] files = info.GetFiles().OrderByDescending(m => m.CreationTime.ToString("yyyyMMdd")).ToArray();
foreach (FileInfo fi in files)
{
FileArchive FA = new FileArchive();
FA.Name = fi.Name;
FA.FullName = fi.FullName;
FA.CreationDate = fi.CreationTime;
FA.RegroupingField =fi.CreationTime.ToString("MM") + "-" +
fi.CreationTime.ToString("MMMM") + " | " + fi.CreationTime.Year;
fiList.Add(FA);
fiList.OrderByDescending(m => m.CreationDate.ToString("MM"));
}
方法OrderByDescending
不会对列表进行适当排序。您需要存储并枚举返回值才能使用排序列表。
我会移动这条线:
fiList.OrderByDescending(m => m.CreationDate.ToString("MM"));
退出for循环(完成后只需要排序一次),并将其更改为:
var sortedList = fiList.OrderByDescending(m => m.CreationDate.ToString("MM"));
此外,根据实际日期而不是月份的字符串表示进行排序会更有效,也不容易出错。要执行此操作,请删除ToString
调用并保留日期。
var sortedList = fiList.OrderByDescending(m => m.CreationDate);
请参见此处。