title: How do I implement a Peek() function on a DataReader?
body: <p>There doesn't seem to be a <code>Peek</code> method on the DataReader in ado.net. I would like to be able to perform some one-off processing before I loop through my reader, and it would be nice to be able to look at the data in the first row without causing it to be skipped by the subsequent iteration. What is the best way to accomplish this?</p>
  
  <p>I am using a <code>SqlDataReader</code>, but preferably the implementation would be as general as possible (i.e. apply to <code>IDataReader</code> or <code>DbDataReader</code>).</p>