JMC*_*C17 20 c# arrays boolean set
我已经知道下面的循环示例了
bool[] switches = new bool[20];
for (int i = 0; i < switches.Length; i++) { switches[i] = false; }
Run Code Online (Sandbox Code Playgroud)
但有没有更有效的方法将整个数组设置为false?
为了解释一下自己,我不像上面的例子那样将新的bool数组设置为false,因为它本来就是假的.在我的情况下,我正在阅读大部分进程内存,在搜索模式时最多可以触发18724次.当它确定当前字节不包含模式时,它将整个bool数组设置为false以及其他一些内容然后读取下一个内存块并重新启动循环.
虽然我更多地出于好奇而问我这个问题,因为整个过程仍然需要不到一秒钟.
再次,我的问题是,是否有更好的方法将整个bool数组设置为false?
Fel*_*ani 44
default(bool)是的false,只需创建数组,每个元素都是false.
bool[] switches = new bool[20];
Run Code Online (Sandbox Code Playgroud)
您可以尝试Array.Clear替代方案:
Array.Clear(switches, 0, switches.Length);
Run Code Online (Sandbox Code Playgroud)
不确定相对表现会是什么,但你绝对不应该期待奇迹.
如果你可以重新启动数组,那么回答Fabian Bigler是正确的方法.
但是,如果要重新启动它true,请使用Enumerable.Repeat:
switches = Enumerable.Repeat(true, 20).ToArray();
Run Code Online (Sandbox Code Playgroud)