c#cast byte [*,*,*] to byte []

1 c# casting multidimensional-array

我有类型字节的属性的对象[ ,,*]

现在我想使用System.Random :: NextBytes()用随机值填充这个多维数组.然而,NextBytes接受byte []的参数

我能以某种方式将多维数组转换为单维数组,以便将其作为参数传递吗?

谢谢!

Jon*_*eet 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);
    }
}
Run Code Online (Sandbox Code Playgroud)