我怎么能写一个没有Lambde表达式的函数
本文关键字:Lambde 表达式 函数 一个 怎么能 | 更新日期: 2023-09-27 18:14:53
我只是在想如何转换这个:List.Where(X=>X>5);
到非lambda表达式代码。我不知道怎么让Func在这里工作
在不使用lambda表达式的情况下创建委托有两种相当简单的可能性:
-
编写方法并使用方法组转换
private static bool GreaterThan5(int x) { return x > 5; } ... var query = list.Where(GreaterThan5);
-
使用匿名方法
var query = list.Where(delegate(int x) { return x > 5; });
这两个都不像使用lambda表达式那样清晰。对于更复杂的示例,您实际上想要捕获局部变量,"编写单独的方法"版本将变得更加复杂。
虽然我不明白这样做的目的,但您可以这样做:
bool MyFilterFunction(int x)
{
return x > 5;
}
然后重写代码:
List.Where(MyFilterFunction);