13得票4回答
使用ExpressionTree分配属性

我正在尝试将属性赋值作为表达式树传递给方法。该方法将调用表达式以正确分配属性,然后检测刚刚分配的属性名称,以便我可以引发 PropertyChanged 事件。我的想法是,我希望能够在我的 WPF 视图模型中使用简单自动属性,并仍然触发 PropertyChanged 事件。 我对 Expr...

11得票5回答
如何从字符串创建表达式树/lambda以获取深层属性

假设有一个字符串:"Person.Address.Postcode",我希望能够在 Person 实例上获取/设置此邮政编码属性。我该如何实现呢?我的想法是将字符串按 "." 分割,然后迭代每个部分,在先前的类型上查找属性,然后构建一个表达式树,大致如下(对于伪语法表示歉意):(person ...

8得票1回答
在Select()查询中使用Lambda表达式

我正在尝试构建一个 lambda 表达式,其中包含两个赋值语句(如下所示),然后将其传递给 Queryable.Select() 方法。 我正在尝试将一个字符串变量传递到一个方法中,然后使用该变量构建 lambda 表达式,以便在 LINQ Select 查询中使用它。 我的理由是,我有一...

15得票1回答
System.Linq.Expressions.LogicalBinaryExpression类有什么问题?

我正在尝试解析表达式,并且在某个时候,我必须解析具有类型System.Linq.Expressions.LogicalBinaryExpression的表达式。我从调试监视中获取这个类名:expression.GetType().ToString()等于"System.Linq.Express...

34得票3回答
查看由编译表达式生成的IL代码

在调用表达式树上的Compile()方法时,是否有可能查看生成的IL代码?考虑这个非常简单的例子:class Program { public int Value { get; set; } static void Main(string[] args) { ...

9得票1回答
拦截所有EF6 Linq查询

我有一个函数,想在每次执行Linq查询时运行它,以在执行之前修改表达式树。我查看了IDbCommandTreeInterceptor接口,但似乎没有提供表达式树(因为它到达这一点时可能不是Linq查询)。有没有办法在执行之前拦截和修改所有表达式呢?注意,这必须是Linq树修改,因为我已经构建了...

7得票2回答
检测二进制表达式中的括号

我正在构建一个表达式分析器,希望能够生成数据库查询代码。我已经做了很多工作,但卡在了精确解析二进制表达式上。将它们分成左右两部分很容易,但我需要检测括号并相应地生成我的代码,我不知道如何做到这一点。 以下是一个示例(请忽略有缺陷的逻辑): a => a.Line2 != "1" &a...

15得票4回答
有没有一种简单的方法将lambda表达式字符串解析为Action委托?

我有一个方法,根据传递的操作委托修改一个“帐户”对象:public static void AlterAccount(string AccountID, Action<Account> AccountAction) { Account someAccount = account...

10得票2回答
这是一个ExpressionTrees的bug吗?#2

看起来 ExpressionTrees 编译器在许多方面应该与 C# 规范相近,但与 C# 不同的是,它不支持从 decimal 到任何 enum-type 的转换:using System; using System.Linq.Expressions; class Program { ...

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

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