Question: I have the following method and for some reason the first call to Copy to seems to do nothing? Anyone know why?
In input to the method is compressed and base64 can supply that method to if need.

```
private byte[] GetFileChunk(string base64)
    {
        using (
            MemoryStream compressedData = new MemoryStream(Convert.FromBase64String(base64), false),
            uncompressedData = new MemoryStream())
        {

            using (GZipStream compressionStream = new GZipStream(compressedData, CompressionMode.Decompress))
            {
                // first copy does nothing ?? second works
                compressionStream.CopyTo(uncompressedData);
                compressionStream.CopyTo(uncompressedData);
            }

            return uncompressedData.ToArray();
        }
    }

```

Answer: 
Just a guess, but is it because the new `GZipStream` constructor leaves the index at the end of the array, and the first `CopyTo` resets it to the start, so that when you call the second `CopyTo` its now at the start and copies the data properly?
How sure are you that first copy does nothing and the second works
, that would be a bug in the `GZipStream` class. Your code should work fine without calling CopyTo twice.