 <p>If performance is a concern, it's unclear to me why you'd be bothering to construct an entire array in the first place. Why not just this?</p> <pre><code>foreach (var item in myItems.Where(FILTER-IT-HERE)) MY-ACTION; </code></pre> <p>Or:</p> <pre><code>foreach (var item in myItems) MY-ACTION-WITH-FILTER; </code></pre> <p>I ask because, while the others are right that you can't really know without testing, I wouldn't expect there to be much difference between the above two options. I <strong>would</strong> expect there to be a difference, on the other hand, between creating/populating an array (seemingly for no reason) and <em>not</em> creating an array.</p>