title: All items in ConcurrentQueue<byte[]> are identical
body: <p>I have a NetworkStream that I use to get data from another program.  The data arrives as a Byte[64], which I then Enqueue to a ConcurrentQueue so that another thread can dequeue for analysis later.
  The queue is instantiated:</p>
  
  <pre><code>ConcurrentQueue&lt;byte[]&gt; fifo = new ConcurrentQueue&lt;byte[]&gt;();
  </code></pre>
  
  <p>then I Enqueue all the data being sent:</p>
  
  <pre><code>Byte[] bytesIn = new Byte[64];
  int i;
  while ((i = stream.Read(bytesIn, 0, bytesIn.Length)) != 0)
  {
      fifo.Enqueue(bytesIn);
  }
  </code></pre>
  
  <p>If I then look at (during debug) the data in <code>fifo</code> it turns out that every byte[64] contained therin is identical to the latest <code>bytesIn</code>.  How do I ensure that the arrays I'm adding to <code>fifo</code> are the values and not the pointers (if that's the correct terminology)?</p>