[英]Copy a multidimensional Array of bool into another array
如何将布尔多维数组复制到其他数组中。 一维数组使用长度,但是我不确定这是否适合多维数组。
bool[][] OldArray
bool[][] NewArray = new bool[][];
Array.Copy(NewArray,OldArray,NewArray.length)
那不是多维数组,而是交错的数组(数组数组)。
bool[,] multiDimArray;
是多维的
bool[][] jaggedArray;
锯齿状。 不同之处在于多维数组始终是矩形的,而锯齿状的数组不必是矩形的。
要复制一个多维度数组(第一种情况),您只需将每个维度的长度乘以在一起,因为(来自MSDN ):
在多维数组之间进行复制时,该数组的行为类似于长的一维数组,其中行(或列)在概念上首尾相连。 例如,如果一个数组具有三行(或列),每个行有四个元素,那么从数组的开头复制六个元素将复制第一行(或列)的所有四个元素和第二行的前两个元素(或列)。
对于锯齿状,需要循环遍历第一个维度,然后Array.Copy
Array。依次Array.Copy
每个内部数组。
马特·伯兰(Matt Burland)是对的; 那是一个锯齿状的数组,无法使用Array.Copy
复制。 但是,由于要初始化它,因此可以使用LINQ。
bool[][] oldArray;
bool[][] newArray = oldArray.Select(innerArray => innerArray.ToArray()).ToArray();
内部复制内部使用Array.CopyTo
,因此它不像枚举那样慢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.