且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

有什么方法可以将lambda表达式作为变量或参数传递?

更新时间:2023-11-11 13:02:40

如果您这样定义LINQ表达式:

If you define your LINQ expressions like this:

Func<IEnumerable<int>, IEnumerable<int>> expr1 =
               l => l.Where(n => n > 6).OrderBy(n => n % 2 == 0).Select(n => n);

Func<IEnumerable<int>, IEnumerable<int>> expr2 = 
               l => l.TakeWhile((n, index) => n >= index);

您的UseLambda方法如下:

And your UseLambda method as:

public void UseLambda<T> (IEnumerable<T> source 
                          ,Func<IEnumerable<T>, IEnumerable<T>> lambda)
{
    var items= lambda(source);

    foreach(var item in items)
       Console.Writeline(item.ToString());
    }
}

那你我想你有想要的东西.

Then you I think you have what you're looking for.