我正在思考如何将这个代码转换为非 Lambda 表达式:
List.Where(X=>X>5);
我无法想出如何在此处使用 Func。List.Where(X=>X>5);
我无法想出如何在此处使用 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);
bool
的方法。 - dkozl