c# - 排队字节数组问题

标签 c# queue

最简单的例子。我正在尝试创建这样的字节数组队列:

        Queue<Byte[]> q = new Queue<Byte[]>();
        Byte[] block = new Byte[1];
        block[0] = 1;
        q.Enqueue(block);
        block[0] = 2;
        q.Enqueue(block);
        block[0] = 3;
        q.Enqueue(block);
        byte[] block1 = q.Dequeue();
        Console.WriteLine(block1[0]);
        block1 = q.Dequeue();
        Console.WriteLine(block1[0]);
        block1 = q.Dequeue();
        Console.WriteLine(block1[0]);

但实际上我的三个 block 都带有“3”,但预期是“1”“2”“3”。知道我做错了什么吗?

最佳答案

您每次都需要创建一个新数组,否则您只是更改同一个数组并将它的多个引用添加到 Queue

Queue<Byte[]> q = new Queue<Byte[]>();
Byte[] block = new Byte[1];
block[0] = 1;
q.Enqueue(block);

// Create a new array
block = new Byte[1];
block[0] = 2;
q.Enqueue(block);

// Create a new array
block = new Byte[1];
block[0] = 3;
q.Enqueue(block);
byte[] block1 = q.Dequeue();
Console.WriteLine(block1[0]);
block1 = q.Dequeue();
Console.WriteLine(block1[0]);
block1 = q.Dequeue();
Console.WriteLine(block1[0]);

关于c# - 排队字节数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941777/

相关文章:

java - 两个不同的 JMS 队列监听器的创造性解决方案 (Tibco)

c# - WinForm 底部边距属性不执行任何操作

c# - 从任务栏打开 Winform

c# - 使用 PDFSharp 将多个 .rdlc 报告呈现为单个 PDF

c# - 任务中的异常不会导致应用程序崩溃

algorithm - 队列平均 O(1) 入队和出队

python - 为什么 asyncio 队列等待 get() 会阻塞?

c++ - 为什么我在此函数中出现段错误?

python - 在不同模块中运行的线程之间共享队列

c# - 从平面 XML 反序列化的嵌套类