问题描述
- 请看一个大神写的lambda表达式,不用linq请问怎么调用
-
Func<int, bool> MyAnd(Func<int, bool> f1, Func<int, bool> f2) { return x => f1(x) && f2(x); }
解决方案
直接调用也可以:
bool b1 = MyAnd(x => x < 10, x => x % 2 == 0)(4);
bool b2 = MyAnd(x => x < 10, x => x % 2 == 0)(12);
解决方案二:
int[] arr = { 1, 2, 3, 4, 5, 8, 9, 11, 12, 14 };
Func<int, bool> f1 = x => x < 10;
Func<int, bool> f2 = x => x % 2 == 0;
Func<int, bool> myand = x => f1(x) && f2(x);
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]+" "+ myand(i));
}
解决方案三:
其实Lambda表达式是由匿名函数的语法发展而来,编译器会将他解析成一个匿名函数,其用处主要是用于赋给一个委托;你可以将Lambda表达式看作一个匿名函数
,你想想匿名函数怎么调用呢?谁也不会定义一个匿名函数然后去直接调用吧!
时间: 2024-09-30 14:42:35