创建 lambda 表达式
本文关键字:表达式 lambda 创建 | 更新日期: 2023-09-27 17:55:59
我正在尝试过滤绑定到网格的对象列表(List)。现在我想根据所需的用户过滤此列表。我有组合框来选择要过滤的字段和文本框来输入值。从那里,用户可以选择项目代码或成本或与项目类相关的任何属性。那么我如何根据所选字段和输入的值创建 lambda 表达式。.
一个灵活但不是很简单的选项是使用动态 LINQ。您可以根据用户选择构造查询,甚至可以将多个属性与 AND 和 OR 操作以及比较运算符等一起使用,并使用它来筛选结果。这是 ScottGu 关于动态 LINQ 的文章。
另一个简单的选择是为类中的每个属性设置一个巨大的开关案例。
...
case "ItemCode":
results = records.Where(i => i.ItemCode == criteriaValue);
break;
case "Cost":
results = recotds.Where(i => i.Cost == Convert.ToDouble(criteriaValue));
break;
...