title: Is List<System.Type> that accepts only certain types possible?
body: <p>is there any possibility to have a generic <code>List&lt;System.Type&gt;</code> and to have a constraint on the type?
  I want to store types in a list for a lookup, but only types where the class of this type implements a specific interface.</p>
  
  <p>Something like this:</p>
  
  <pre><code>List&lt;Type&gt; : where typeof(Type) is IMyClass
  </code></pre>
  
  <p>Is that possible? If not do you have any suggestion on how to solve this issue?</p>
  
  <p>Any help appreciated !</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>Sorry I haven't been clearer on the subject, but Sign's comment below is correct, I don't have instances available, just types.</p>
  
  <p>Assume the following:</p>
  
  <pre><code>class PluginA : IPlugin { } 
  class PluginB : IPlugin { } 
  class PluginC : ISomeOtherInterface { } 
  
  var pluginTypes = new List&lt;Type&gt;()
  pluginTypes.Add(typeof(PluginA) --&gt; OK
  pluginTypes.Add(typeof(PluginB) --&gt; OK
  pluginTypes.Add(typeof(PluginC) --&gt; should fail
  </code></pre>
  
  <p>Yes I could wrap this, but hoped that there would be a better variant which checks during compiletime or hints with intellisense what types are allowed. </p>