问题描述
我有一个 DateTimeOffset
对象列表,我想将新对象按顺序插入到列表中.
I have a List of DateTimeOffset
objects, and I want to insert new ones into the list in order.
List<DateTimeOffset> TimeList = ...
// determine the order before insert or add the new item
抱歉,需要更新我的问题.
Sorry, need to update my question.
List<customizedClass> ItemList = ...
//customizedClass contains DateTimeOffset object and other strings, int, etc.
ItemList.Sort(); // this won't work until set data comparison with DateTimeOffset
ItemList.OrderBy(); // this won't work until set data comparison with DateTimeOffset
另外,如何将DateTimeOffset
作为.OrderBy()
的参数?
Also, how to put DateTimeOffset
as the parameter of .OrderBy()
?
我也试过了:
ItemList = from s in ItemList
orderby s.PublishDate descending // .PublishDate is type DateTime
select s;
但是,它会返回此错误消息,
However, it returns this error message,
无法将类型System.Linq.IOrderedEnumerable"隐式转换为System.Collections.Gerneric.List".存在显式转换(您是否缺少演员表?)
Cannot implicitly convert type 'System.Linq.IOrderedEnumerable' to 'System.Collections.Gerneric.List'. An explicit conversion exist (are you missing a cast?)
推荐答案
修改你的LINQ,在末尾添加ToList():
Modify your LINQ, add ToList() at the end:
ItemList = (from s in ItemList
orderby s.PublishDate descending
select s).ToList();
或者将排序后的列表分配给另一个变量
Alternatively assign the sorted list to another variable
var sortedList = from s in ....
这篇关于如何按顺序将项目插入列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!