How to use LINQ to return substring of FileInfo.Name

后端 未结 4 1120
遇见更好的自我
遇见更好的自我 2021-01-19 21:47

I would like to convert the below \"foreach\" statement to a LINQ query that returns a substring of the file name into a list:

IList fileNameSu         


        
4条回答
  •  甜味超标
    2021-01-19 22:26

    If you happen to know the type of the collection of FileInfos, and it's a List, I'd probably skip the Linq and write:

            files.ConvertAll(
                file => file.Name.Substring(0, file.Name.Length - (file.Name.Length - file.Name.IndexOf(".config.xml")))
                );
    

    or if it's an array:

            Array.ConvertAll(
                files,
                file => file.Name.Substring(0, file.Name.Length - (file.Name.Length - file.Name.IndexOf(".config.xml")))
                );
    

    Mainly because I like saying "Convert" instead of "Select" to express my intent to a programmer reading this code.

    However, Linq is part of C# now, so I think it's perfectly reasonable to insist that a reading programmer understand what Select does. And the Linq approach lets you easily migrate to PLinq in the future.

提交回复
热议问题