2
我有以下型号允许在IEnumerable的即席表达<MyObj>
public class Model
{
public string Name {get;set;}
public DateTime HireDate {get;set;}
public decimal Salary {get;set;}
public int Hours {get;set;}
}
现在我有以下列表
List<Model> employees = new List<Model>();
我正在从用户表达字符串输入,以下是例子用户可能使用什么
薪水
工资+ 500
薪酬*小时
SUM(小时)
SUM(小时*薪水)
SUM(小时)/ MIN(小时)
我必须处理用户的表达式到另一个int或decimal的IEnumerable中,这取决于计算和哪种类型具有更高的精度,例如第三个表达式将基因评定以下
var result = employees.Select(e => e.Salary * e.Hours)
第四届一个将导致这个
var result = employees.Sum(e => e.Hours)
我目前先用System.Linq.Expressions命名空间解析的表达成解析树和建筑物的表达式树做。用这种方法,有很多代码,其他开发人员不易读。有没有更简单的方法?的
难道这家伙使用运行时汇编?每次编译表达式时,这会在内存中创建一个dll。我的表情比LINQ简单得多。感谢您分享它。 – fahadash
@fahadash他正在使用'System.Linq.Expressions'东西,解析所有东西等等,因为这有一些开销,你写的你实际上做的是一样的 – MichaC