对于单维数组,通常我会像下面的那样使用for循环,但我想不出一种不涉及大量循环的方法.
for (int i = 0; i < myArray.length; ++i)
{
myArray[i] = rnd.Next(1, 500);
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用低级 Buffer.BlockCopy来隐藏循环:
// N-D array (whatever dimensions)
int[,,] array = new int[3, 5, 11];
Buffer.BlockCopy(
Enumerable
.Range(0, array.Length)
.Select(x => rand.Next(0, 500))
.ToArray(),
0,
array,
0,
array.Length * sizeof(int)); // sizeof(int) : we copy bytes...
Run Code Online (Sandbox Code Playgroud)
我们创建一维数组
Enumerable
.Range(0, array.Length)
.Select(x => rand.Next(0, 500))
.ToArray()
Run Code Online (Sandbox Code Playgroud)
使用ND one(array.Length == array.Length(0) * ... * array.GetLEngth(N)
)的总长度并将其复制到ND one中.
归档时间: |
|
查看次数: |
59 次 |
最近记录: |