OrderBy在按日期排序列表时不会更改列表
本文关键字:列表 OrderBy 日期 排序 | 更新日期: 2023-09-27 18:10:40
我有一个结构体和如下列表,我只是想根据日期对输入点进行排序。我已经使用了以下命令,但是我看不到任何排序。
public struct Points
{
public Date Date;
public double Quantity;
}
_test = new List<Points>(InputPoints);
_test.OrderBy(t => t.Date);
调用_test.OrderBy(t => t.Date)
并不会改变_test
本身的内容,而是返回一个排序的IOrderedEnumerable<Points>
。您可以使用ToList()
将其转换回List<Points>
。所以all in all
_test = _test.OrderBy(t => t.Date).ToList();
来自MSDN文档:
"此方法通过使用延迟执行实现。立即返回值是一个对象,它存储执行操作所需的所有信息。通过直接调用GetEnumerator方法或使用visualc#中的foreach或visualbasic中的For Each方法枚举对象之前,此方法表示的查询不会执行。"
这意味着您必须使用OrderBy()返回的值来获得排序的结果。
_test =_test.OrderBy(t => t.Date).ToList();