首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态数据过滤

动态数据过滤
EN

Stack Overflow用户
提问于 2015-02-26 22:21:38
回答 1查看 660关注 0票数 0

我正在创建一个web项目,在这个项目中,用户输入一些筛选条件并将数据呈现到网格中。条件将传递给Rest Service,并将基于在服务器上定义的模型类中定义的属性。

示例:假设服务返回巧克力,用户请求如下所示:

代码语言:javascript
复制
((ChocolateColor == DarkBlack) || (ChocolateColor == White) && 
ChocolatePrice > 1.5 Euros) || ChocolateOwner == "ChocoMan"

我希望能够提取过滤器运行时,并将其转换为针对我的模型类的过滤器。与其创建大量的代码解析过滤器,还有更聪明的方法来应用我的过滤器吗?

过滤器将直接作为布尔表达式给出,或者使用GUI构建。

EN

回答 1

Stack Overflow用户

发布于 2015-02-27 12:32:52

我认为实际上需要大量的代码,但也许已经有人为您做了这些。实现动态表达式计算器的尝试有很多次,我个人没有进行任何测试,但下面是一个例子:https://netmatze.wordpress.com/2013/03/04/implementing-expression-evaluator-in-c/

从这个例子中,可以这样做:

代码语言:javascript
复制
Person person = new Person() { Name = "Mathias", Age = 36, Children = 2, Married = true };
var ruleText = " (Children = 2 && Married = true) || Age > 36 ";
Evaluator evaluator = new Evaluator();
var evaluatorResult = evaluator.Evaluate<Person>(ruleText, person);

现在,看起来您可以使用这个引擎并适应您的需求,但这可能是一条“尝试和磨难的道路”。

而且,这还远远没有给出任何关键字(比如linq或rest)。当您使用作为后端工作的示例时,这将无法工作,因为不能将这些命令转换为SQL --而且您不希望对其进行编码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28753893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档