我有一个属性类型为 byte[,,*] 的对象
现在我想使用 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);
}
}
关于c# 将 byte[*,*,*] 转换为 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371887/