【发布时间】:2014-01-01 04:27:47
【问题描述】:
我已经知道下面的循环示例
bool[] switches = new bool[20];
for (int i = 0; i < switches.Length; i++) { switches[i] = false; }
但是有没有更有效的方法将整个数组设置为 false?
为了解释一下,我不会像上面的例子那样将新的 bool 数组设置为 false,因为无论如何它已经是 false。 在我的情况下,我正在读取大部分进程内存,它在搜索模式时最多可以触发大约 18724 次。当它确定当前字节不包含该模式时,它将整个 bool 数组设置为 false 以及其他一些内容,然后读取下一个内存块并重新启动循环。
虽然我问这个问题更多是出于好奇,因为整个过程仍然不到一秒钟。
那么,我的问题是,有没有更好的方法将整个 bool 数组设置为 false?
【问题讨论】:
-
只需将其分配给一个新数组:
switches = new bool[20],默认情况下所有项都为 false。虽然如果对数组的引用被分发到其他地方,这将不起作用,因为这只会影响您设置的引用。不知道它是否更快,并且确实会给 GC 带来压力。 -
几乎肯定不是。无论如何,循环的过程都需要完成。
-
@user2025312:有definite possibilities for optimization。