我只是在想如何转换这个:
List.Where(X=>X>5);
到非 lambda 表达式代码。
我不知道如何让 Func 在这里工作。
最佳答案
在不使用 lambda 表达式的情况下创建委托(delegate)有两种相当简单的可能性:
写一个方法,使用方法组转换
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 表达式那么清楚。对于您实际想要捕获局部变量的更复杂的示例,“编写单独的方法”版本会变得更加复杂。
关于c# - 如何编写没有 Lambda 表达式的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690584/