在我正在开发的游戏中,我需要对对象列表进行排序,以确定它们的呈现顺序。我需要每帧排序列表,每秒60次。但是,除了游戏开始后的第一帧之外,列表可能已经按顺序排列。
所以我的问题是List<>的OrderBy方法是否在使用它用于排序的任何算法之前检查列表是否已经订购?由于大部分时间我的列表都会被排序,所以无论如何都要浪费时间。
由于 //迈克尔
答案 0 :(得分:2)
它不是List<T>.OrderBy
,而是Enumerable.OrderBy
,不会检查列表是否已经排序。您可以查看源代码here,如果您希望在我建议您使用SortedList
或SortedList<TKey,TValue>
的情况下保持列表的排序。