使用 LINQ,如何查看另一个 object/List 中包含的列表?

Using LINQ, how do I look at List that is contained in another object/List?

假设我有 IEnumOfFood,其中包含一个列出每种成分的食物对象。所以像 IEnumOfFood[0] 这样的东西会是 {'Celery', 'Onion', 'Chicken', [Stock]}。在本例中,[Stock] 是另一个 IEnumerable。我正在尝试获取 IEnumOfFood 中的每个元素,其中 Stock.Herb ==“Bay Leaf”。 似乎无论我如何尝试改写 LINQ 查询,它总是会出现某种错误。目前我有这个:

IEnumOfFood= IEnumFoodItems.Select(x => x.Select(
y => y.Stock.Where(
y => y.Herb == "BayLeaf")));

抛出“无法将 lambda 表达式转换为类型 'bool',因为它不是委托类型”。 这只是我尝试获取 IEnumOfFood 元素的众多方法之一,其中 Stock Enum 的药草为 'Bay Leaf',我并不是说这应该有效。

你试过了吗:

IEnumFoodItems.Where(x => x.Any(s => s.Stock.Any(h => h.Herb == "BayLeaf")))