title: Allow C# generic type constraint to accept either single instance of object or IEnumerable
body: <p>Feeling like I might be out of luck with this one but thought I'd give it a try.</p>
  <p>I have a class that accepts a generic constraint as follows:</p>
  <pre><code>public MyClass&lt;T&gt;
      where T : IMyInterface
  {
  
      public MyClass(T payload)
      {
          Payload = payload;
      }
  
      public T Payload { get; }
  
  }
  </code></pre>
  <p>This works just fine as long as I'm constructing with a single instance of IMyInterface. But what if I want T to be and IEnumerable of IMyInterface? This does not work.</p>
  <p>I tried specifying multiple types in the constraint as follows...</p>
  <pre><code>public MyClass&lt;T&gt;
       where T : IMyInterface, IEnumerable&lt;IMyInterface&gt;
  </code></pre>
  <p>... but this does not appear to work as the compiler wants to satisfy both contraints instead of just one or the other. Also tried multiple constructors but this was also problematic.</p>