gpt4 book ai didi

c# - Linq包含所有方法?

转载 作者:行者123 更新时间:2023-12-04 00:43:21 24 4
gpt4 key购买 nike

我有一个项目列表,每个项目都可以有多个关键字,所以我有三个表

Item -> ItemKeyword <- Keyword

我想返回列表中包含所有关键字的所有项目。所以例如:
Item 1 has keywords "Rabbit", "Dog", "Cat" 
Item 2 has keywords "Rabbit", Hedgehog", "Dog"

我只想返回那些同时将“Dog”和“Cat”作为关键字的项目。

我不能使用包含查询,因为它本质上会返回所有带有“狗”或“猫”的项目。

所以我想我要问的是在 linq 中是否有一个叫做 ContainsAll 的东西,或者是否有某种方法可以执行此功能。

我曾尝试使用“除外”和“相交”,但似乎无法获得正确的结果。

我想要一个查询,以便很容易编译查询,但这不是一个交易破坏者。

我在用:
  • 点网 4.5
  • Visual Studio 2012
  • C#
  • 林克
  • Entity Framework
  • SQL Server Ce 4.0
  • 最佳答案

    I cant use a contains query as that will essentially return all those items with "Dog" OR "Cat".



    这是不正确的。您可以使用两个包含 AND &:
    items.Where(item => item.Keywords.Contains("Dog") && item.Keywords.Contains("Cat"));

    或者,您可以将要查找的值放入数组中,然后使用 All使其更短的方法:
    var values = new [] { "Dog", "Cat" };
    items.Where(item => values.All(item.Keywords.Contains));

    关于c# - Linq包含所有方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26059212/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com