Linq 创建IDictionary<;字符串、表达式>;证明困难

Linq 创建IDictionary<;字符串、表达式>;证明困难,linq,Linq,我想制作一个命名为LINQ表达式的字典,因为我无法将表达式存储在数据库中。我将存储所需表达式的名称,以及结构化的IList,其中T是可以存储在数据库中的参数类型 但这并不是我想要的那样。。。我有下面的布局。这不是一个真正的表达式,我只是想暂时编译一些东西 public static class Evaluations { public static Dictionary<string, Expression> Expressions = new Dictionary&

我想制作一个命名为LINQ表达式的字典,因为我无法将表达式存储在数据库中。我将存储所需表达式的名称,以及结构化的
IList
,其中
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
添加为我的
IDictionary
?有什么建议吗?

这不是一个有效的表达:

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)
    }
};
公共静态字典表达式=
新词典{
{
“第一句话”,
(表达式)((当前,下一个)=>当前+下一个)
}
};

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

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)
    }
};
公共静态字典表达式=
新词典{
{
“第一句话”,
(表达式)((当前,下一个)=>当前+下一个)
}
};

您确定需要表达式吗?如果不需要Linq.Expression,可以直接使用Func。是否确实需要表达式?如果不需要Linq.Expression的话,可以直接使用Func。是的,是表达式部分的装箱对我不起作用。谢谢。@Ciel:没有拳击比赛,现在仍然没有。。。是的,是表达式部分的装箱对我不起作用。谢谢。@Ciel:没有拳击比赛,现在仍然没有。。。正是语法给你带来了问题。