ign flaw in C#. Iterator blocks in C# simply don&#39;t work nicely when you want to split execution between &quot;immediate&quot; (usually for validation) and &quot;deferred&quot;. Instead, we have to split our implementation into two: a normal method for validation, which then calls the iterator method for the deferred processing:</p>  <div class="code"><span class="Modifier">public</span>&#160;<span class="Modifier">static</span> IEnumerable&lt;TSource&gt; Where&lt;TSource&gt;(     <br />&#160;&#160;&#160