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