创建 lambda 表达式

本文关键字:表达式 lambda 创建 | 更新日期: 2023-09-27 17:55:59

我正在尝试过滤绑定到网格的对象列表(List)。现在我想根据所需的用户过滤此列表。我有组合框来选择要过滤的字段和文本框来输入值。从那里,用户可以选择项目代码或成本或与项目类相关的任何属性。那么我如何根据所选字段和输入的值创建 lambda 表达式。.

创建 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;
...