我有一个对象,其属性类型为byte [,,*]
现在我想使用System.Random :: NextBytes()用随机值填充这个多维数组。 然而,NextBytes采用byte []
的参数我可以将多维数组以某种方式转换为单维数组,以便将其作为参数传递吗?
谢谢!
答案 0 :(得分:5)
您无法强制转换,但可以使用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);
}
}