这是一个例子:
originalList
是对象列表。var subList = (originalList.Where(x => x.number < 0)).ToList();
originalList.RemoveAll(x => x.number < 0);
我稍后会使用 subList
。在这个例子中,originalList
被遍历了两次。这个函数被调用数十亿次,而且 originalList
是一个大的列表。
有没有一种简单的方法来提高性能?
一个重要的事情是:对象数量的值在两次调用该函数之间可能会发生改变。
List
吗?一个更好的数据结构可能会更优。 - NetMageLinkedList
而不是List
,我可以获得一个RemoveAllAndReturn
方法,其运行速度比List
版本快50到200倍,具体取决于删除的频率。 - NetMageLinkedList
占用更多的空间 - 如果这很关键,或者时间非常关键,那么实现单向链表可能更有效。 - NetMage