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

Ege*_*Aia 1 c# linq

让我说我有一个查询,我必须选择特定的产品.

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

起初我想采取所有未删除的配方,这很容易:

var recipes = context.Recipes.Where(a=> !a.Deleted);
Run Code Online (Sandbox Code Playgroud)

现在我想通过枚举来选择含水的例子.这将是这样的

recipes = recipes.Where(a => a.Ingridients.Where(b => b.Name == "Water"));
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*zek 6

使用Any而不是Where在子查询中:

recipes = recipes.Where(a => a.Ingredients.Any(b => b.Name == "Water"));
Run Code Online (Sandbox Code Playgroud)

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