【发布时间】:2024-04-26 15:55:02
【问题描述】:
关于效率,有谁知道编译器是否足够聪明不为以下代码中的循环的每次迭代创建包含1, 3, 5 的数组?
var foo = new List<int> { 1, 2, 3, 4, 5 };
foo.RemoveAll(i => new[] { 1, 3, 5 }.Contains(i));
我更喜欢它的可读性,但不是为了性能。
【问题讨论】:
-
尝试你自己sharplab.io
-
@MichaelRandall 很棒的网站。你应该用一个简短的例子来写一个答案。我认为这对每个人来说都很有趣。
-
我真的很惊讶,但看起来它确实为方法
internal bool <M>b__0_0(int i)内的每次迭代创建了一个 3 项数组的新实例。
标签: c# arrays list linq compiler-optimization