![]() |
1
28
如果您为删除的每个项目调用RemoveAt,您将移动大量数据。最有效的方法是将要保留的项目移动到一起,然后在最后删除未使用的项目:
编辑:
|
![]() |
2
9
只是为了考虑创建一个新列表的解决方案 古老的
或者,很明显
编辑 答案要快一点。如果你在这里读到其他东西,那是因为我在周末测量,周末的大脑很有趣( 关闭解决方案比应用程序快40%左右。快2个数量级。我想这将真正取决于你的名单有多大! |
![]() |
3
5
还有另一个选项,与Frank的类似,但使用闭包。而且比弗兰克的版本快。
|
![]() |
4
2
我不确定你所说的替代品是什么意思,但如果你是说“其他每一项”,那么下面的代码就可以了。首先移除第二个元素,然后移除第四个元素,依此类推
|
![]() |
5
2
这适用于所有序列,而不仅仅是
在我的简单测试中,迭代整个列表时的性能不是很好,因此请务必分析您的实际情况。 |
![]() |
6
1
|
![]() |
7
1
显然,这取决于使用情况,但是您可以使用一个包装器IList,将您提供的索引乘以2,并报告列表的长度为1/2(细节省略)。这是O(1)。 |
![]() |
8
0
执行删除操作,然后执行擦除操作。 这样,您就不会混淆习惯于看到这种模式的人。
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |