Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET/C-此处使用的正确方法-LINQ_C#_.net_Linq_Loops - Fatal编程技术网

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

C# .NET/C-此处使用的正确方法-LINQ,c#,.net,linq,loops,C#,.net,Linq,Loops,我对林克完全是个新手。 以下是我目前掌握的代码: public class Folder { public Folder(string path) { string[] files = Directory.GetFiles(path); IList<FileInfo> fis = new List<FileInfo>(); files.SomeMethod(x => fis.Add(new FileIn

我对林克完全是个新手。 以下是我目前掌握的代码:

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)));
    }

}
使用此方法替换SomeMethod以使其工作的正确方法名称是什么?
我基本上只想在这里用一种更简洁的方式来编写循环。

听起来像是在寻找类似列表中的ForEach函数的东西。你可以做以下事情

files.ToList().ForEach(x => fis.Add(new FileInfo(x)));    
或者你可以这样做作为一种更直接的方法

IList<FileInfo> fis = (from f in Directory.GetFiles(path)
                      select new FileInfo(f)).ToList();
或者

或者-根本不用linq,这个怎么样

IList<FileInfo> fis = new List<FileInfo>(new DirectoryInfo(path).GetFiles());

听起来您在寻找类似列表中的ForEach函数的东西。你可以做以下事情

files.ToList().ForEach(x => fis.Add(new FileInfo(x)));    
或者你可以这样做作为一种更直接的方法

IList<FileInfo> fis = (from f in Directory.GetFiles(path)
                      select new FileInfo(f)).ToList();
或者

或者-根本不用linq,这个怎么样

IList<FileInfo> fis = new List<FileInfo>(new DirectoryInfo(path).GetFiles());
您可以使用静态ForEach方法:

Array.ForEach(x => fis.Add(new FileInfo(x)));
但是,您可以使用以下一行轻松替换整个函数:

IList<FileInfo> fis = Directory.GetFiles(path).
    Select(f => new FileInfo(f)).ToList();
您可以使用静态ForEach方法:

Array.ForEach(x => fis.Add(new FileInfo(x)));
但是,您可以使用以下一行轻松替换整个函数:

IList<FileInfo> fis = Directory.GetFiles(path).
    Select(f => new FileInfo(f)).ToList();

已经有一个DirectoryInfo方法可以执行此操作:

DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] fis = di.GetFileSystemInfos();

如果需要将其作为列表,请使用Enumerable.ToList。

已经有一个DirectoryInfo方法可以执行此操作:

DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] fis = di.GetFileSystemInfos();
如果需要将其作为列表,请使用Enumerable.ToList