title: Select from IEnumerable with Distinct/GroupBy and sorting — possible?
body: <p>Say you have this:</p>
  
  <pre><code>class LogEntry
  {
      int ID;
      int UserName;
      datetime TimeStamp;
      string Details;
  }
  </code></pre>
  
  <p>and you have pulled a set of data like this:</p>
  
  <pre><code>ID  Username   Timestamp   Details
  1   foo        1/01/2010   Account created
  2   zip        2/02/2010   Account created
  3   bar        2/02/2010   Account created
  4   sandwich   3/03/2010   Account created
  5   bar        5/05/2010   Stole food
  6   foo        5/05/2010   Can't find food
  7   sandwich   8/08/2010   Donated food
  8   sandwich   9/09/2010   Ate more food
  9   foo        9/09/2010   Ate food
  10  bar        11/11/2010  Can't find food
  </code></pre>
  
  <p>What I want to do is select only the last single record (ie Sort on TimeStamp Descending) for each user (ie GroupBy Username). I can get my head around Distinct and GroupBy, but combining them in a single statement which also returns the non-distinct/grouped fields/properties AND sorts by timestamp is giving me a headache.</p>
  
  <p>What should come out with the above example is:</p>
  
  <pre><code>ID  Username   Timestamp   Details
  2   zip        2/02/2010   Account created
  8   sandwich   9/09/2010   Ate more food
  9   foo        9/09/2010   Ate food
  10  bar        11/11/2010  Can't find food
  </code></pre>
  
  <p>I don't want to 'cheat' and resort to a long-winded way of doing it when I'm confident it can be done in a single LINQ statement.</p>