创建IDictionary <string,expression>证明困难</string,expression>

时间:2011-07-19 14:13:21

标签: linq

我想创建一个名为LINQ Expressions的字典,因为我无法将表达式存储在我的数据库中。我将存储所需表达式的名称,以及结构化IList<T>,其中T是可以存储在数据库中的参数类型。

但它不是我想要的......我有以下布局。这不是一个真实的表达,我现在只想尝试编译......

public static class Evaluations {
        public static Dictionary<string, Expression> Expressions = new Dictionary<string, Expression> {
            {
                "First Expression",
                new Expression<Func<int, int, int>> =
                    (current, next) => (current + next)
            }
        };
    }

然而我被告知......好吧,几乎没有。编译器错误毫无意义。简单说明

  

这不是变量

如何安全地添加System.Linq.Expressions.Expression作为Value IDictionary<string, Expression>的{​​{1}}?有什么建议吗?

1 个答案:

答案 0 :(得分:4)

这不是一个有效的表达式:

new Expression<Func<int, int, int>> =
                (current, next) => (current + next)

你想把什么值分配给?

我认为你的意思是:

(Expression<Func<int, int, int>>)((current, next) => current + next)

编译好:

public static Dictionary<string, Expression> Expressions = 
    new Dictionary<string, Expression> {
    {
        "First Expression",
            (Expression<Func<int, int, int>>)((current, next) => current + next)
    }
};