用随机字节填充列表

mrq*_*901 5 .net c# random byte list

我正在尝试用随机字节填充缓冲区.缓冲区定义为字节列表.这是我想保留的东西.这是定义:

namespace NameofProject
{
    public partial class Form1 : Form
    {
    List<byte> buff = new List<byte>();
    }

}
Run Code Online (Sandbox Code Playgroud)

我的第一次尝试是

public static void RandomFillBuffer()
{
   Random rnd = new Random();
   rnd.NextBytes(buff);
}
Run Code Online (Sandbox Code Playgroud)

然而,这给buff带来了这样的错误:非静态字段,方法或属性'Form1.buff'需要对象引用

然后我刚刚删除了"静态"这个词(我不确定这是否属实)并且它变成了"public void RandomFillBuffer()",但是这次我得到了buff的这个错误:参数1:无法从'System转换. Collections.Generic.List'到'byte []'

如果它们有意义,我会感谢任何帮助解决2个错误中的任何一个.

its*_*e86 5

你得到那个问题因为NextBytes()需要一个数组,但是你试图通过一个数组List<>.解决它的一种方法是将您更改List<>为数组:

byte[] buff = new byte[someSize];
Run Code Online (Sandbox Code Playgroud)

你将不得不弄清楚someSize应该是什么(这取决于你).如果没有尺寸,你就无法填充.否则,怎么知道什么时候完成?


Sam*_*ion 3

您遇到的问题是 NextBytes 填充 array[] 而不是列表。您需要定义一个数组及其大小的索引

    // Put random bytes into this array.
    byte[] array = new byte[8];
    // Fill array with random bytes.
    Random random = new Random();
    random.NextBytes(array);
Run Code Online (Sandbox Code Playgroud)