我只是在考虑如何将其转换
List.Where(X=>X>5);
为非 lambda 表达式代码。我不知道如何让 Func 在这里工作。
问问题
120 次
2 回答
12
在不使用 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 表达式那样清晰。对于您实际想要捕获局部变量的更复杂的示例,“编写单独的方法”版本会变得更加复杂。
于 2013-05-22T11:31:18.293 回答
3
虽然我不明白这样做的目的,但您可以这样做:
bool MyFilterFunction(int x)
{
return x > 5;
}
然后重写你的代码:
List.Where(MyFilterFunction);
于 2013-05-22T11:31:36.913 回答