title: Linq GroupBy. Return top one item of a subset of data
body: <p>I have a table of flight price data and I want to return the top 1 cheapest flight to each destination destination.  The table has the following basic fields:</p>
  
  <pre><code>FlightInfoID
  AirportFrom
  AirportTo
  Price
  </code></pre>
  
  <p>I tried the following but it did not return the results I expected as there were multiple items for a specific destination and I only want 1 result per destination so if I have 50 destinations I would get 50 items returned.</p>
  
  <pre><code>lstBestFlightDealsForAllRoutes.OrderBy(p=&gt; p.Price).GroupBy(x =&gt; x.AirportTo).First();
  </code></pre>