title: Passing subsequence of a stream without copying its content into a new instance
body: <p>Let's assume I have following method:</p>
  
  <pre><code>void Upload(Stream stream)
  {
      // uploads the content of the specified stream somewhere
  }
  </code></pre>
  
  <p>And let's further assume I got some binary file <code>f</code>, which contains some data I'd like to upload with the method above. 
  <strong>But</strong>: It's not the whole file I want to upload. It's only a certain part of <code>f</code>. More precisely the desired data starts at a certain position <code>s &gt;= 0</code> and ends at a certain position <code>e &lt;= f.Length</code>. </p>
  
  <p>Is there a way to pass a <code>Stream</code> instance, which starts at position <code>s</code>, with the length of <code>e</code>, without copying all bytes between <code>s</code> and <code>e</code> into a new stream instance? I'm asking because there is the possibility, that file <code>f</code> is quite big and I don't want to make assumptions on potentially available RAM.</p>