>>885
とりあえず答えるが、間違いの指摘以外の質問は受け付けない

// 'a : new { string DirectoryName, string FileName, DateTime ModifiedTime }
// files1 : IEnumerable<'a>
// files2 : IEnumerable<'a>

from f1 in files1
join f2 in files2 on f1.FileName equals f2.FileName
select (f1.ModifiedTime >= f2.ModifiedTime) ? f1 : f2