如何在此方法中使用 Lambda 表达式作为参数并在 where 子句中使用它?
一直在阅读有关 Func、dynamic 和 Expression 树的内容,但不确定如何执行此操作。
问题是我不知道类型 T 也不知道调用者想要返回什么。我如何在 C# 4.0 中执行此操作?一个让我入门的例子会很棒 - 谢谢。
这是我想要的一个非常简化的例子。
static public List<T> Match(string startfilelocation, ???)
{
var filelist = Directory.GetFiles(startfilelocation, "*.*", SearchOption.AllDirectories);
return filelist.Where(???);
}
谢谢。
指定 List<string>
作为返回类型,使用 Func<string, bool>
输入参数,然后输入 ToList
将结果转化为列表的方法:
static public List<string> Match(string startfilelocation, Func<string, bool> filter) {
var filelist = Directory.GetFiles(startfilelocation, "*.*", SearchOption.AllDirectories);
return filelist.Where(filter).ToList();
}
例子:
List<string> files = Match(folder, s => s.Contains("candy"));
我是一名优秀的程序员,十分优秀!