我想将下面的"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)
尝试这样的事情:
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)