小编ven*_*kod的帖子

创建动态谓词 - 将属性作为参数传递给函数

我正在尝试创建动态谓词,以便它可以用于过滤列表

 public class Feature
 {
   public string Color{get;set;}
   public string Weight{get;set;}
 }
Run Code Online (Sandbox Code Playgroud)

我希望能够创建一个动态谓词,以便可以过滤List.我得到一些条件,因为字符串值">","<","> ="等.有什么方法可以做到这一点?

public Predicate<Feature> GetFilter(X property,T value, string condition) //no clue what X will be
 {
            switch(condition)
            {
              case ">=":
               return new Predicate<Feature>(property >= value)//or something similar
            }               
 }
Run Code Online (Sandbox Code Playgroud)

用法可能是:

 var filterConditions=GetFilter(x=>x.Weight,100,">=");
Run Code Online (Sandbox Code Playgroud)

如何定义GetFilter?以及如何在其中创建谓词?

c# lambda expression dynamic predicates

7
推荐指数
1
解决办法
4376
查看次数

标签 统计

c# ×1

dynamic ×1

expression ×1

lambda ×1

predicates ×1