如何在此方法中使用 Lambda 表达式作为参数并在 where 子句中使用它?
一直在阅读有关 Func、动态和表达式树的内容,但不知道如何执行此操作。
问题是我不知道类型 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"));
关于c# - 如何在 C# 4 中对 T 执行动态 where lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10137403/