Alternative way to extract the most recent file using LINQ
This should do it:

var selectedFileInfos = listFileInfo
    .Where(x =&gt; { 
        var filename = Path.GetFileNameWithoutExtension(x.FullName); 
        return specialProcList.Any(y =&gt; filename.Contains(y);})
    .OrderByDescending(x =&gt; x.Name)
    .GroupBy(x =&gt; Path.GetFileNameWithoutExtension(Regex.Replace(x.Name, @"[\d]", String.Empty)) 
    .Select(x =&gt; x.First());


But be careful: file numbers should be padded with zeros. 0001, 0900, 0999, 1000, 1001. If they are just normally numbered with 1, 900, 999, 1000 etc., even your code will fail.