title: is it better performance wise to use the concrete type rather than the interface
body: <p>I have run into some rules (recommendations) to use concrete <code>List</code> and <code>Dictionary</code> rather than <code>IList</code> and <code>IDictionary</code>, given the sample tests that show accessing through the interface is quite a bit slower. For example, adding 10000 values to a list and then doing a <code>Count</code> on the list 1 billion times shows that doing it through an interface is 28 times slower then doing it through the concrete class. Ie, through the concrete class it takes 80ms, through the interface it takes 2800ms which shows how really slow it is through the interface. Given this would it be reasonable use the concrete class. Is there a reason why the interface is so much slower? (Probably more directed at someone who know more about the internals of .net).</p>