c# - Expression<Func<>> 和 Func<> 的区别

标签 c# linq

<分区>

例如,为什么大多数 LINQ 运算符接受 Expression<Func<TSource>>及其等价物 Func<TSource>

使用通用 Expression 的好处/原因是什么?类而不是直接的 lambda 语法?

最佳答案

使用 Expression<T>您正在明确创建一个 expression tree - 这意味着您可以像处理数据一样处理构成查询的代码。

这是因为 LINQ 提供程序(例如 LINQ to SQL)检查查询本身以确定将 C# 表达式转换为 T-SQL 查询的最佳方式。由于表达式树允许您将代码视为提供者能够执行此操作的数据。

关于c# - Expression<Func<>> 和 Func<> 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2664841/

相关文章:

c# - 在 Dynamic Linq 中合并

c# - 抛出可观察的 LINQ 不一致异常

c# - Moq - 存储库中的 Linq 表达式 - 在设置中指定表达式

c# - 带有播放列表的 Visual Studio 测试资源管理器

c# - Windows 8 中 WebView 的滚动问题

c# - EF 和 Linq OrderBy 使用两个参数

c# - 在 NULL 的 LINQ 查询中将字符串设置为 ""

c# - 媒体引擎错误,在本地机器上听不到声音

c# - ASP.NET MVC 多个开始形式?

c# - 女士访问数据库