Να και οι δικές μου απόψεις για το LINQ:
var items = from file in new DirectoryInfo(@"c:\").GetFiles()
            orderby file.LastWriteTime
            select file;
foreach (var file in items.Take(10))
{
   Console.WriteLine(file.Name); 
}
για να έρθουν τα αρχεία ταξινομημένα ανά ημερομηνία και
var groups= from file in new DirectoryInfo(@"c:\").GetFiles()
            orderby file.Length
            group file by file.LastWriteTime.Date;
foreach (var group in groups)
{
   Console.WriteLine("=== {0:d} with {1} Items ===", group.Key, group.Count());
   foreach (var file in group)
   {
      Console.WriteLine(file.Name); 
   }
}
για να έρθουν τα αρχεία γκρουπαρισμένα ανά ημερομηνία και ταξινομημένα ανα μέγεθος. Περισσότερο κώδικα γράφω για να τυπώσω τα αποτελέσματα παρά για να τα πάρω! Και στις δύο περιπτώσεις η δουλειά έχει γίνει σε ... 3 γραμμές!
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos