title: async and await while adding elements to List<T>
body: <p>I wrote method, which adds elements to the List from many sources. See below: </p>
  
  <pre><code>public static async Task&lt;List&lt;SearchingItem&gt;&gt; GetItemsToSelect()
      {
          List&lt;SearchingItem&gt; searchingItems = new List&lt;SearchingItem&gt;();
  
          foreach (Place place in await GetPlaces())
          {
              searchingItems.Add(new SearchingItem() { 
                  IdFromRealModel=place.Id, NameToDisplay=place.FullName, 
                  ExtraInformation=place.Name, TypeOfSearchingItem=TypeOfSearchingItem.PLACE });
          }
  
          foreach (Group group in await GetGroups())
          {
              searchingItems.Add(new SearchingItem()
              {
                  IdFromRealModel = group.Id, NameToDisplay = group.Name,
                  ExtraInformation = group.TypeName, TypeOfSearchingItem = TypeOfSearchingItem.GROUP
              });
          }
  
          return searchingItems;
      }
  </code></pre>
  
  <p>I tested this method and works propertly. I suppose that it works propertly, because <em>GetPlaces</em> method return 160 elements and <em>GetGroups</em> return 3000. But, I was wondering if it will work if the methods return elements in the same time. Should I lock list <em>searchingItems</em> ? </p>
  
  <p>Thank you for advice. </p>