【发布时间】:2009-04-29 21:06:39
【问题描述】:
想知道是否有任何方法可以获取由 LINQ“查询”语法表达式产生的 lambda 表达式。
给定:
var query = from c in dc.Colors
where c.ID == 213
orderby c.Name, c.Description
select new {c.ID, c.Name, c.Description };
有什么方法可以获取生成的“lambda”代码/表达式?
var query = dc.Colors
.Where(c => c.ID == 213)
.OrderBy(c => c.Name)
.ThenBy(c => c.Description)
.Select(c => new {c.ID, c.Name, c.Description, });
我知道这些都是非常简单的示例,并且 C# 编译器在编译代码时会从查询表达式生成 lambda 表达式。有没有办法得到那个表达式的副本?
我希望将其用作一些对 lambda 表达式不太熟悉的团队成员的培训工具。另外,我使用过 Linq Pad,但理想情况下,这可以在没有 3rd 方工具的情况下完成。
【问题讨论】: