C# 允许在IEnumerable上使用特殊表达式<;MyObj>;

C# 允许在IEnumerable上使用特殊表达式<;MyObj>;,c#,linq,lambda,expression,enumerable,C#,Linq,Lambda,Expression,Enumerable,我有下面的型号 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>(); 第四个将导致这种情况 var r

我有下面的型号

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>();
第四个将导致这种情况

var result = employees.Sum(e => e.Hours)

目前,我首先将表达式解析为解析树,然后使用名称空间构建表达式树。使用这种方法,有很多代码,其他开发人员不容易阅读。有更简单的方法吗?

也许你可以在(已经很老了)上找到一些帮助,而不是再做一次


或者至少它应该为您提供一个良好的代码基础,让您可以了解这家伙是否在使用运行时编译?它在每次编译表达式时都在内存中创建dll。我的表达式比LINQ简单得多。谢谢分享。@fahadash他正在使用
System.Linq.Expressions
的东西,解析所有东西等等,当然这会有一些开销,你写的时候你实际上也是这样做的
var result = employees.Sum(e => e.Hours)