title: What is the need for custom collections and enumerables?
body: <p>Why do we need custom collection and custom  enumeration by implementing <code>IEnumerable</code> and <code>IEnumerator</code> (I know what <code>IEnumerable</code> and <code>IEnumerator</code> does and how to implement them). The question is as anything can be done with collections like Dictionary, Hashtable, List. So why do we use custom enumeration to make non-enumerable items to enumerable collections?</p>
  
  <p>Almost most of the ASP.NET object are enumerable like <code>string[]</code>, <code>int[]</code>, then why should I depend on my own logic for enumeration?</p>