LINQ嵌套在哪里

gri*_*egs 7 linq

如果我有以下型号;

  public List<RecommendedProduct> recommendations
Run Code Online (Sandbox Code Playgroud)

然后

public class RecommendedProduct
  public List<Product> Products
Run Code Online (Sandbox Code Playgroud)

然后是产品;

public class Product
  public string Code
Run Code Online (Sandbox Code Playgroud)

建议名单有,作为一个例子,在这10个项目.

每个推荐项目都有两个产品.

如何使用LINQ,找到包含"A"和"B"产品代码的产品的建议对象?

Aar*_*ght 11

使用Any扩展名:

var myProducts =
    from rp in recommendations
    where
        cp.Products.Any(p => p.Product.Code == "A") &&
        cp.Products.Any(p => p.Product.Code == "B")
    select rp;
Run Code Online (Sandbox Code Playgroud)

Anytrue如果序列中的任何元素与内部条件匹配,则返回.在这种情况下,您正在搜索两个元素,因此需要两次Any调用.