title: Efficient way to move list items at the end of the list according to specific criteria
body: <p>Having a <code>List&lt;Office&gt;</code> where Office is a class, I have to sort its entries by country (where country is a property of class Office).</p>
  
  <p>Some offices have no country set and therefore will be displayed at the top of the list. In this case I have to put them at the bottom of the list since considered "less relevant". </p>
  
  <pre><code>switch (sortOptions.SortField)
  
  ...  
  
  case OfficeSortField.Country:
  
  var noCountryList = officesList.Where(a =&gt; string.IsNullOrEmpty(a.CountryText)).ToList();
  officesList.RemoveAll(a =&gt; string.IsNullOrEmpty(a.CountryText));
  
  officesList= sortOptions.SortOrder == SortOrder.Ascending
                                        ? officesList.OrderBy(o =&gt; o.CountryText).ToList()
                                        : officesList.OrderByDescending(o =&gt; o.CountryText).ToList();
  
  officesList.AddRange(noCountryAssoList);
  break;
  </code></pre>
  
  <p>Under perfomance perspective, is there a better way to proceed? </p>