C# 谓词生成器的通用方法

C# 谓词生成器的通用方法,c#,linq,generics,predicate,C#,Linq,Generics,Predicate,Im使用LinqPad Predicatebuilder基于动态输入生成Linq查询。在代码中,我有很多if案例来检查输入是否具有特定属性的值,例如: if (!string.IsNullOrEmpty(searchInput.modelname)) { searchPredicate = searchPredicate.And(stock => stock.ModelName.ToLower().Equals(searchInput.modelname.ToLower()));

Im使用LinqPad Predicatebuilder基于动态输入生成Linq查询。在代码中,我有很多if案例来检查输入是否具有特定属性的值,例如:

if (!string.IsNullOrEmpty(searchInput.modelname))
{
    searchPredicate = searchPredicate.And(stock => stock.ModelName.ToLower().Equals(searchInput.modelname.ToLower()));
}
有没有一种方法可以创建一个泛型方法,我只需使用stock属性的值和名称就可以调用它?比如:

searchPredicate = AddAndPredicate(searchInput.modelName, "ModelName", searchPredicate)

您可以创建一个简单的方法,该方法接受一组参数和一个将评估您的条件的
委托给
函数的
委托。我将为您准备一个简单的示例。这不是一个完整的通用解决方案,但应该可以很好地重用。

您可以创建一个简单的方法,该方法接受一组参数,并将
委托给一个
函数,该函数将评估您的状况。我将为您准备一个简单的示例。这不是一个完整的通用解决方案,但应该是可重用的