gpt4 book ai didi

c# - 允许在 IEnumerable 上使用临时表达式

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:32 25 4
gpt4 key购买 nike

我有以下模型

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>();

我正在从用户那里获取表达式字符串输入,以下是用户可能使用的示例

Salary

Salary + 500

Salary * Hours

SUM(Hours)

SUM(Hours * Salary)

SUM(Hours) / MIN (Hours)

我必须将用户的表达式处理成另一个 int 或 decimal 的 IEnumerable,具体取决于计算和哪种类型具有更高的精度,例如第三个表达式将生成以下内容

var result = employees.Select(e => e.Salary * e.Hours)

第四个会变成这样

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

我目前正在通过首先将表达式解析为解析树并使用 System.Linq.Expressions 构建表达式树来做到这一点命名空间。使用这种方法,会有很多代码并且不容易被其他开发人员阅读。有没有更简单的方法?

最佳答案

也许你可以在(已经很老了)Scott Gu's Blog 上找到一些帮助,而不是再次这样做

或者至少它应该给你一个很好的代码库来研究

关于c# - 允许在 IEnumerable<MyObj> 上使用临时表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com