使用System.Linq.DynamicQueryable中带有func参数的方法

本文关键字:func 参数 方法 System Linq DynamicQueryable 使用 | 更新日期: 2023-09-27 17:59:01

我使用Rank方法来获得产品的排名,使用一些自定义逻辑,如

product.Rank(p=>p.Price);
public class Product
{
     public double Price {get;}
     public int Rank(Func<Product, double> compfunc)
     {
     ...
     }
}

我想在使用扩展库System.Linq.Dynamic.DynamicQueryable 的where子句中使用此方法

例如:

products.Where("Rank(p=>p.Price) == 0")

尽管以上内容不起作用。有可能像这样传递函数吗?

使用System.Linq.DynamicQueryable中带有func参数的方法

您可能会这样做:

products.Where("Rank(@0) == 0", new Func<Product, double>(p => p.Price));