【发布时间】:2011-02-14 22:10:37
【问题描述】:
我有一个对列表的排序查询并多次调用。
list = list.OrderBy().ToList();
在此代码中,ToList() 方法消耗大量资源并且需要很长时间。如何在不转换回列表的情况下使用另一种订购方法加快速度。我应该为数组使用 .Sort 扩展名吗?
【问题讨论】:
-
List<T>有自己的Sort()方法:msdn.microsoft.com/en-us/library/b0zbh7b6.aspx -
请注意,
OrderBy是延迟评估的,调用ToList会强制进行评估。要问的问题:您的OrderBy是否在做任何昂贵的事情,例如进行方法调用?您的来源有多大? -
事实上,我有一门课,它有开始和结束日期,这个列表是为开始时间排序的。我可能会添加和删除这些对象一百万次(这是一个模拟)。添加对象时如何保持排序?我认为需要插入特定索引,所以我需要对每个添加进行过滤。也许这需要更多资源,我不确定......
-
@Baran 也许您想要
SortedList<TKey, TValue>或SortedSet之类的东西?
标签: c# performance linq sql-order-by linq-to-objects