title: Wildcard equivalent in C# generics
body: <p>Let's say I have a generic class as follows:</p>
  
  <pre><code>public class GeneralPropertyMap&lt;T&gt;
  {
  }
  </code></pre>
  
  <p>In some other class I have a method that takes in an array of <code>GeneralPropertyMap&lt;T&gt;</code>. In Java, in order to take in an array that contains any type of <code>GeneralPropertyMap</code> the method would look like this:</p>
  
  <pre><code>private void TakeGeneralPropertyMap(GeneralPropertyMap&lt;?&gt;[] maps)
  {
  }
  </code></pre>
  
  <p>We use the wildcard so that later we can call <code>TakeGeneralPropertyMap</code> passing a bunch of <code>GeneralPropertyMap</code> with any type for <code>T</code> each, like this:</p>
  
  <pre><code>GeneralPropertyMap&lt;?&gt;[] maps = new GeneralPropertyMap&lt;?&gt;[3];
  maps[0] = new GeneralPropertyMap&lt;String&gt;();
  maps[1] = new GeneralPropertyMap&lt;Integer&gt;();
  maps[2] = new GeneralPropertyMap&lt;Double&gt;();
  //And finally pass the array in.
  TakeGeneralPropertyMap(maps);
  </code></pre>
  
  <p>I'm trying to figure out an equivalent in C# with no success. Any ideas?</p>