1140得票12回答
为什么会使用Expression<Func<T>>而不是Func<T>?

我理解lambda表达式以及Func和Action委托。但是表达式让我感到困惑。 在什么情况下,您会使用Expression&lt;Func&lt;T&gt;&gt;而不是普通的Func&lt;T&gt;?

598得票23回答
从lambda表达式中获取属性名称

有没有更好的方法在通过lambda表达式传递属性名时获取属性名?以下是我目前拥有的代码。 例如: GetSortingInfo&lt;User&gt;(u =&gt; u.UserId); 只有当属性是字符串时,将其转换为成员表达式才会起作用。因为并非所有属性都是字符串,所以我不得不使...

128得票1回答
Roslyn 的 SyntaxNodes 是否被重用?

我一直在了解 Roslyn CTP,虽然它解决了与表达式树API类似的问题,但两者都是不可变的,但Roslyn通过一种完全不同的方式实现: Expression节点没有对父节点的引用,使用ExpressionVisitor进行修改,因此可以重复使用大部分内容。 另一方面,Roslyn的Sy...

107得票4回答
LINQ to Entities仅支持将EDM原始类型或枚举类型强制转换为具有IEntity接口的类型。

我有以下通用扩展方法: public static T GetById&lt;T&gt;(this IQueryable&lt;T&gt; collection, Guid id) where T : IEntity { Expression&lt;Func&lt;T, b...

103得票5回答
Expression.Quote()能做什么,Expression.Constant()不能做到呢?(涉及IT技术)

注意:我知道之前有一个问题:“LINQ的Expression.Quote方法的目的是什么?”,但如果你继续阅读,你会发现它并没有回答我的问题。 我理解 Expression.Quote() 的表面意义。然而,Expression.Constant() 也可以用于相同的目的(除了 Expres...

97得票7回答
在C#中序列化和反序列化表达式树

有没有办法在C#中反序列化表达式?我想将表达式存储在数据库中,在运行时加载。

91得票4回答
编译的C# Lambda表达式性能

考虑对集合进行以下简单操作:static List&lt;int&gt; x = new List&lt;int&gt;() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var result = x.Where(i =&gt; i % 2 == 0).Where(i ...

91得票8回答
如何在通用扩展方法中使用字符串列名对IQueryable应用OrderBy?

public static IQueryable&lt;TResult&gt; ApplySortFilter&lt;T, TResult&gt;(this IQueryable&lt;T&gt; query, string columnName) where T : EntityObje...

85得票7回答
表达式树入门指南?

我在这个场景中是个半吊子。 我试着在谷歌上搜索它们的相关内容,但是我就是不理解。能否有人给我一个简单的解释,告诉我它们是什么以及为什么有用? 注:我说的是 .Net 中的 LINQ 功能。

76得票6回答
表达式类的目的是什么?

我想知道在使用Expression&lt;&gt;和不使用之间的区别是什么? 我经常看到在LinQ中大量使用Expression&lt;Foo&gt;,但到目前为止,我还没有找到任何解释这种方式与只使用委托之间差异的文章。 例如:Func&lt;int, bool&gt; Is42 = (...