title: LINQ How to force query to materialize?
body: <p>Say I have simple LINQ extenstion: </p>
  
  <pre><code>var filtered = data.Where(i =&gt; i.Count &gt; 0);
  </code></pre>
  
  <p>I know that this will not evaluated unless I start to use <em>filtered</em> i.e.</p>
  
  <pre><code>foreach(DataItem i in filtered) ...
  </code></pre>
  
  <p>However I need to create cloned version of <code>data</code> and release data as soon as possible. <code>data</code> can be changed in other thread so I want to get immediate snapshot of it.</p>
  
  <p>How can I force <code>filtered</code> to be evaluated immediately?</p>