 <p>I think you're on the right track. Instead of grouping FlightTimes by FlightType, try building FlightTimeResults and grouping those by FlightType instead:</p> <pre><code>var results = from ft in schedules.FlightTimes group new FlightTimeResult { FlightTimeData = ft, FlagRedeye = ft.DepartureTime.Hour &gt;= 0 &amp;&amp; ft.DepartureTime.Hour &lt; 6 } by ft.FlightType.ToString() into groupedFlights select groupedFlights; </code></pre>