【发布时间】:2023-03-23 12:34:01
【问题描述】:
是否可以使用 Dynamic Linq 来运行类似于以下内容的查询:
选择 a, b, a + b 作为 c 来自我的数据表
我有一个应用程序,用户可以在其中输入 SQL 语句,然后将这些语句的结果分配给一个 DataTable。还可以选择基于其他字段派生字段。 (例如,用户可以说字段 C = a + b,或字段 D = A*B+10 等)。
理想情况下,我想做类似的事情:
string myCalc = "Convert.ToDouble(r.ItemArray[14])+Convert.ToDouble(r.ItemArray[45])";
var 参数 = from r in dt.AsEnumerable() 选择(我的计算器);
在这个例子中我想要做的是将第 14 列的值添加到第 45 列并返回它。由用户决定使用什么表达式,因此选择中的文本需要来自字符串,我无法对表达式进行硬编码。字符串 myCalc 纯粹用于演示目的。
【问题讨论】: