列表模型 -->按降序排序 System.DateTime 不起作用
本文关键字:排序 System DateTime 不起作用 降序 模型 列表 | 更新日期: 2023-09-27 18:17:58
抱歉,如果这是一个重复的,但我找不到适合我的 StackOverflow 帖子。
我对学习如何使用 w/linq 的列表模型感到恼火。 我在这里的问题是按日期时间排序没有效果。 我正在使用.NET Framework v4.5。 我正在使用 SQL DataReader 将数据读入列表模型,但我将手动指定为此发布手动将数据添加到列表模型,而不是写入/发布 sql 对象。
public MyInventory : IDisposable
{
public MyInventory {
PurchaseId = -1;
StockDate = null;
}
public void Dispose() {
//PurchaseId...
StockDate = null;
}
public long PurchaseId { get; set; }
public DateTime? StockDate { get; set; }
}
List<MyInventory> modelMyInventory = new List<MyInventory>();
modelMyInventory.Add(new MyInventory { PurchaseId = 2, StockDate = DateTime.Parse("01-02-2010") });
modelMyInventory.Add(new MyInventory { PurchaseId = 5, StockDate = DateTime.Parse("01-03-2011") });
modelMyInventory.Add(new MyInventory { PurchaseId = 7, StockDate = DateTime.Parse("01-01-2010") });
modelMyInventory.OrderByDescending(m => m.StockDate);
谢谢。。。
OrderByDescending
方法没有就地排序,则需要再次重新分配:
modelMyInventory = modelMyInventory.OrderByDescending(m => m.StockDate);
modelMyInventory.OrderByDescending(m => m.StockDate);
实际上不会对modelMyInventory
对象进行排序。相反,它返回一个经过排序的新枚举。所以你应该写:
modelMyInventory = modelMyInventory.OrderByDescending(m => m.StockDate);
modelMyInventory.OrderByDescending(m => m.StockDate);
这不会对modelMyInventory
重新排序。 这将返回按 StockDate
排序的新枚举。
您可以创建新变量或将新列表存储在同一变量中:
var modelSorted = modelMyInventory.OrderByDescending(m => m.StockDate);
或
modelMyInventory = modelMyInventory.OrderByDescending(m => m.StockDate).ToList();