Indentation on a long (ish) linq chain
I would consider refactoring the .Select call to do this:

files = files.Union(Directory.GetFiles(year).Select(d =&gt; GetTimeForFile(d))).ToList();


Where GetTimeForFile is a method with the following content:

DateTime GetTimeForFile(String fileName)
{
    var noExtName = Path.GetFileNameWithoutExtension(fileName);
    return DateTime.ParseExact(noExtName.Substring(noExtName.Length - 8),
     "yyyyMMdd", null);
}


Either way, no matter how you indent it now, the method extraction of GetTimeForFile makes it significantly more readable.