title: Return list from async/await method
body: <p>I want to make a webservice request asynchron. I call it here:</p>
  
  <pre><code>List&lt;Item&gt; list = GetListAsync();
  </code></pre>
  
  <p>Here is the declaration of my function, which should return a list:</p>
  
  <pre><code>private async Task&lt;List&lt;Item&gt;&gt; GetListAsync(){
      List&lt;Item&gt; list = await Task.Run(() =&gt; manager.GetList());
      return list;
  }
  </code></pre>
  
  <p>If I want to compile I get the following error</p>
  
  <pre><code>Cannot implicitely convert type System.Threading.Tasks.Task&lt;System.Collections.Generic.List&lt;Item&gt;&gt; to System.Collections.Generic.List&lt;Item&gt;
  </code></pre>
  
  <p>As I know If I use the <code>async</code> modifier the result is automatically wrapped with Task. I think this doesn't happen because I use <code>Task.Run</code>. If I remove the <code>Task.Run(() =&gt;</code> part I get</p>
  
  <blockquote>
    <p>Cannot await System.Collections.Generic.List expression</p>
  </blockquote>
  
  <p>I think I haven't fully understood the async/await methods. What I'm doing wrong?</p>