我想做点什么
Action<FileInfo> deleter = f =>
{
if (....) // delete condition here
{
System.IO.File.Delete(f.FullName);
}
};
DirectoryInfo di = new DirectoryInfo(_path);
di.GetFiles("*.pdf").Select(deleter); // <= Does not compile!
di.GetFiles("*.txt").Select(deleter); // <= Does not compile!
di.GetFiles("*.dat").Select(deleter); // <= Does not compile!
Run Code Online (Sandbox Code Playgroud)
为了从目录中删除旧文件.但我不知道如何直接将委托应用于FilInfo []而没有明确的foreach(上面列出的想法当然不起作用).
可能吗?
Select()用于将项目从中投射TSource到TResult.在你的情况下,你不需要Select因为你没有投射.相反,使用List<T>s ForEach方法删除文件:
di.GetFiles("*.pdf").ToList().ForEach(deleter);
Run Code Online (Sandbox Code Playgroud)