title: await multiple tasks and access results
body: <p>I need to run multiple awaitable tasks, and then gather their results into a list and return it.</p>
  
  <p>I can create the tasks in a loop and use Task.WhenAll to await them, but I can't figure out how to access the results of each awaited task.  I tried the below but Result is not defined.</p>
  
  <pre><code>    List&lt;Service&gt; services = new List&lt;Service&gt;();
      List&lt;Exception&gt; exceptions = new List&lt;Exception&gt;();
      List&lt;Task&lt;Service&gt;&gt; tasks = new List&lt;Task&lt;Service&gt;&gt;();
  
      foreach (string serviceMoniker in monikers)
      {
        try
        {
          tasks.Add(GetService(serviceMoniker, tenantMoniker, countryCode, environmentId));
        }
        catch (Exception e) { exceptions.Add(e); }
      }
  
      var continuation = Task.WhenAll(tasks);
  
      for (int i=0; i &lt; continuation.Result.Length - 1; i++)
      {
        services.Add(continuation.Result[i].Result);
      }
  </code></pre>
  
  <p>another attempt</p>
  
  <pre><code>    await Task.WhenAll(tasks);
  
      foreach (Task t in tasks)
      {
        services.Add(t.Result);
      }
  </code></pre>