如何在where子句内的enumerable上使用if条件

时间:2017-01-06 07:39:09

标签: c# linq

假设我有一个查询,我必须选择特定的产品。

我有一个名为recipe的类,它具有关于使用的ingridients的无数。

首先,我想拍摄所有未删除的信息,这很容易:

var recipes = context.Recipes.Where(a=> !a.Deleted);

现在我想通过枚举来选择含水的例子。哪个会是这样的

recipes = recipes.Where(a => a.Ingridients.Where(b => b.Name == "Water"));

但这就是问题所在。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:6)

在子查询中使用Any代替Where

recipes = recipes.Where(a => a.Ingredients.Any(b => b.Name == "Water"));

它将返回包含Water作为其中一种成分的所有食谱。