包含来自其他列表的ALL的动态linq查询

时间:2017-02-25 18:41:19

标签: c# linq

我希望能够找到包含我在列表中包含苹果和橘子的商品的所有订单。

 var itemToFind = new List<string>()
 {
      "apples",
      "cookies"
 };

如何重写这一点,以便Contains是动态的?

这会返回我想要的内容但是如何让它循环遍历我的列表以便它是动态的?

 var query = result
      .Where(o => o.OrderItems
      .Any(i => i.Item.Name.Contains("apples")))
      .Select(x => x)
           .Where(y => y.OrderItems
           .Any(b => b.Item.Name.Contains("cookies"))).ToList(); 
// returns 2 orders

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

result.Where(o => o.OrderItems.Any(i => itemToFind.All(itf => i.Item.Name.Contains(itf)))).ToList()

答案 1 :(得分:0)

这似乎有效,但不确定这是否是最佳方式。

foreach (var item in listFacets)
{
    // append where clause within loop
    result = result
    .Where(r => r.RecipeFacets
    .Any(f => f.Facet.Slug.Contains(item)));
}