You ' ve seen someone iterate over a 10 , 000 , 000 element dictionary ? Someone who wasn ' t being a moron ? Cause guess what , iterating over the headers isn ' t going to trigger a GC that you weren ' t already going to trigger processing them . You ' ve seen people iterate over an innumerable of unknown type ? Of course you have . That ' s the example the article should have given Beware of IEnumerable would be a good article , not this one , but one better written . The takeaway subtle or otherwise of this article is that inheritance has a price . That ' s a fair takeaway , but this isn ' t a particularly good way of showing it . You ' re not going to ever do what ' s in the example , and the performance cost as a percentage of the total time spent is going to be significantly lower in a real world example . Two seconds out of four is bad , but out of the time spend to do anything meaningful to 10 million records , it ' s a lot less of a big deal . Fundamentally though , if you really , really care about performance of enumerating over ten million records , take an array or a list and use a for loop . It ' ll be a shit load faster .