DirectoryInfo dir = new DirectoryInfo(@"C:\DotNet"); FileInfo [] fo = dir.GetFiles(); Dictionary fileInfo = new Dictionary();foreach (FileInfo f in fo){ DateTime dt = f.LastAccessTimeUtc; fileInfo.Add(f.Name, dt);}//With Dictionary var result1 = from fileIn in fileInfo.Keys orderby fileInfo[fileIn] descending select fileIn; //With Dictionary to get the Values and File Name. foreach (var ele in result1){ MessageBox.Show(ele + " " + fileInfo[ele]);}