我正在设计要由MVC应用程序使用的Web服务(非常简单的东西),但是我需要Web服务中的一个方法,该方法最多包含四个可选参数(即catId,brandId,最低价格和最高价格)。

我如何编写Linq查询,以便其基本上执行

databaseObject.Products.Where(p=> (p.Category == ANY if catId==null, else catId))

我希望这是有道理的。

最佳答案

方法的参数可以接受空值,并且可以为每个非空参数评估Where限制:

IQueryable<Product> q = databaseObject.Products;

if (catId != null)
{
    q = q.Where(p => p.Category == catId);
}
if (brandId != null)
{
    q = q.Where(p => p.Brand == brandId);
}
// etc. the other parameters

var result = q.ToList();

关于c# - LINQ和可选参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33304334/

10-13 02:26