【发布时间】:2019-09-24 05:55:04
【问题描述】:
我有一个包含 100 个精灵的列表,在某些情况下我想隐藏前 50 个,而在另一种情况下我想隐藏最后 50 个。
我正在使用 FOR LOOP:
for (int i = 0; i < 50; i++) {
spritelist [i].SetActive (false);
}
我不希望我的代码循环 50 次,我担心这可能会导致性能滞后,但我认为有更好的方法:
spritelist[0, 50].SetActive (false);
这可能吗,提前谢谢。
【问题讨论】:
-
somewhere 一些代码需要遍历这 50 个精灵,无论是你自己的
for循环还是一些“ForEach”方法为你做的跨度> -
如果你必须对 50 件事情做同样的事情,就会出现循环。所以这可能无关紧要。在这种情况下,我推荐任何使代码更易于阅读的方法。我们尝试优化的小事情通常不会产生影响,但我们难以阅读的代码才是真正让我们慢下来的原因。
-
数组本质上是一组存储单元。现代 CPU 没有允许同时对多个内存单元执行某些操作的指令(SIMD 指令例外,但它们受大小限制),因此您不能期望代码和 CPU 之间有一些神奇的东西无论它在 C# 代码中的外观如何,都允许这样做的指令 - 最后必须将其展开为 50 次迭代。但从可读性的角度来看,您可以使用 linq。