title: Task.WhenAll for ValueTask
body: <p>Is there an equivalent of <code>Task.WhenAll</code> accepting <code>ValueTask</code>?</p>
  
  <p>I can work around it using</p>
  
  <pre><code>Task.WhenAll(tasks.Select(t =&gt; t.AsTask()))
  </code></pre>
  
  <p>This will be fine if they're all wrapping a <code>Task</code> but it will force the useless allocation of a <code>Task</code> object for real <code>ValueTask</code>.</p>