.NET/C# - 在此使用的正确方法 - LINQ

Bud*_*Joe 1 .net c# linq loops

我是LINQ的新手.这是我到目前为止的代码:

public class Folder
{
    public Folder(string path)
    {
        string[] files = Directory.GetFiles(path);
        IList<FileInfo> fis = new List<FileInfo>();
        files.SomeMethod(x => fis.Add(new FileInfo(x)));
    }

}
Run Code Online (Sandbox Code Playgroud)

使用此替换SomeMethod以使其工作的正确方法名称是什么?我基本上只是喜欢在这里编写循环的更简洁的方法.

Sco*_*vey 13

听起来你正在寻找类似List中ForEach函数的东西.你可以做以下......

files.ToList().ForEach(x => fis.Add(new FileInfo(x)));    
Run Code Online (Sandbox Code Playgroud)

或者你可以做一些像这样更直接的方法

IList<FileInfo> fis = (from f in Directory.GetFiles(path)
                      select new FileInfo(f)).ToList();
Run Code Online (Sandbox Code Playgroud)

要么...

IList<FileInfo> fis = Directory.GetFiles(path).Select(s => new FileInfo(s)).ToList();
// or 
IList<FileInfo> fis = Directory.GetFiles(path)
                      .Select(s => new FileInfo(s))
                      .ToList();
Run Code Online (Sandbox Code Playgroud)

或者 - 根本不使用任何linq,这个怎么样?...

IList<FileInfo> fis = new List<FileInfo>(new DirectoryInfo(path).GetFiles());
Run Code Online (Sandbox Code Playgroud)