1 c# casting multidimensional-array
我有类型字节的属性的对象[ ,,*]
现在我想使用System.Random :: NextBytes()用随机值填充这个多维数组.然而,NextBytes接受byte []的参数
我能以某种方式将多维数组转换为单维数组,以便将其作为参数传递吗?
谢谢!
您无法强制转换,但可以将值从法线快速复制byte[]到byte[,,]使用Buffer.BlockCopy.因此,您必须分配一个正常的字节数组,然后复制结果.
样品:
using System;
class Test
{
static void Main()
{
Random rng = new Random();
byte[,,] y = new byte[2,2,2];
FillArray(y, rng);
foreach (byte b in y)
{
Console.WriteLine(b);
}
}
static void FillArray(byte[,,] array, Random rng)
{
byte[] tmp = new byte[array.Length];
rng.NextBytes(tmp);
Buffer.BlockCopy(tmp, 0, array, 0, tmp.Length);
}
}
Run Code Online (Sandbox Code Playgroud)