如何使用LINQ返回FileInfo.Name的子字符串

sha*_*ett 4 .net c# linq

我想将下面的"foreach"语句转换为LINQ查询,该查询将文件名的子字符串返回到列表中:

IList<string> fileNameSubstringValues = new List<string>();

//Find all assemblies with mapping files.
ICollection<FileInfo> files = codeToGetFileListGoesHere;

//Parse the file name to get the assembly name.
foreach (FileInfo file in files)
{
    string fileName = file.Name.Substring(0, file.Name.Length - (file.Name.Length - file.Name.IndexOf(".config.xml")));
    fileNameSubstringValues.Add(fileName);
}
Run Code Online (Sandbox Code Playgroud)

最终结果将类似于以下内容:

IList<string> fileNameSubstringValues = files.LINQ-QUERY-HERE;
Run Code Online (Sandbox Code Playgroud)

CMS*_*CMS 6

尝试这样的事情:

var fileList = files.Select(file =>
                            file.Name.Substring(0, file.Name.Length -
                            (file.Name.Length - file.Name.IndexOf(".config.xml"))))
                     .ToList();
Run Code Online (Sandbox Code Playgroud)