title: Create a list of types in C#
body: <p>I'd like to create a list of types, each of which must implement a particular interface.  Like:</p>
  
  <pre><code>interface IBase { }
  interface IDerived1 : IBase { }
  interface IDerived2 : IBase { }
  
  class HasATypeList
  {
      List&lt;typeof(IBase)&gt; items;
      HasATypeList()
      {
          items.Add(typeof(IDerived1));
      }
  
  }
  </code></pre>
  
  <p>So I know I can do</p>
  
  <pre><code>List&lt;Type&gt; items;
  </code></pre>
  
  <p>But that won't limit the allowable types in the list to ones that implement IBase.  Do I have to write my own list class?  Not that it's a big deal, but if I don't have to...</p>