title: Sort a list based on another list followed by a property on itself with LINQ
body: <p>The following dictionary represents the key/value pair of a destination city ID and the number of filters associated to that city:</p>
  
  <pre><code>Dictionary&lt;int, int&gt; totalCityFilters
  </code></pre>
  
  <p>This dictionary is sorted by descending number of filters and it's the way I need it to be. I then have an unsorted list of flights:</p>
  
  <pre><code>List&lt;Flight&gt; unsortedFlights
  </code></pre>
  
  <p>Each <code>Flight</code> object has a bunch of properties where the most relevant to my problem are <code>DestinationID</code> and <code>FinalPrice</code>. I need to create a new list of flights where they are sorted based on the following 2 premisses:</p>
  
  <ol>
  <li>The list should first be sorted based on the order of <code>totalCityFilters</code>, the key on that dictionary matches the property <code>DestinationID</code>. The flights list might have multiple flights with the same <code>DestinationID</code> (this is not the primary key).</li>
  <li>The list should then be sorted (ascending) by the <code>FinalPrice</code> property.</li>
  </ol>
  
  <p><strong>However, the second sort must not destroy the first one.</strong> I mean, a cheaper flight (A) must not be on top of a more expensive flight (B) if <code>B.DestinationID</code> appears first than <code>A.DestinationID</code> on <code>totalCityFilters</code>.</p>