Linq和Lambda如何运作

时间:2011-04-14 09:01:01

标签: c#

lambda表达式如何在内部工作,表达式树的作用是什么?

另外linq如何扩展到lambda和heceforth到表达式树?

......有人在接受采访时被问及

如果有人知道,请分享....

由于

3 个答案:

答案 0 :(得分:1)

我认为你要问两件事:

  • 什么是表达树;他们的目的是什么?
  • C#编译器如何翻译“查询表达式”?

如果是这种情况,那么我的Edulinq博客文章可能会有所帮助:

总结:

  • 表达式树是lambda表达式的数据表示(通常;您也可以自己构造它们),因此可以通过LINQ to SQL等代码对它们进行分析,并将其转换为SQL。 Lambda表达式也可以转换为委托实例,就像任何其他委托实例一样 - 基本上你可以执行它们,但不能真正找到它们内部逻辑的细节。
  • 以非常简单的方式翻译查询表达式,将“带有查询表达式的C#”翻译成“不带查询表达式的C#”,然后将其编译为正常。例如,查询:

    from person in people
    where person.Age > 18
    select person.Name
    

    被翻译为

    people.Where(person => person.Age > 18)
          .Select(person => person.Name)
    

答案 1 :(得分:0)

  

lambda表达式是一个匿名函数,可以包含表达式和语句,可用于创建委托或表达式树类型。

您可以通过MSDN上的示例了解相关信息。

答案 2 :(得分:0)

C#lambda表达式的另外两个很好的介绍:

第一个(免责声明 - 我的博客)将为您提供基本概念的快速解释。该书提供了所有相关主题的完整报道。