簡體   English   中英

字節數組排隊問題

[英]Queue-ing Byte arrays trouble

最簡單的例子。 我正在嘗試像這樣創建字節數組隊列:

        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]);

但是實際上我所有三個塊都帶有“ 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]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM