使用 Linq 仅查找在标志列表中具有所有匹配值的记录?

约翰

我有一个记录列表,每个主记录中都有一个包含 0 到多个标志的列表。我正在尝试提出一个 Linq 查询,以仅带回与标志列表中的所有标志匹配的记录。

var flags = new List<string>() {"flag1","flag5"}; 
//The flags list could also be empty in which case it should match records with no flags set.
var tbs = db.MyContents
.Select(a => new  {a.Id, FlagList=a.Flags.Select(f=>f.Name).ToList()})
.Where(f=>f.FlagList.Intersect(flags).Any());

上面的代码带回所有具有"flag1 ||flag5"or的记录"flag1 && flag5"但我想要做的是只带回那些同时具有两者的记录"flag1 && flag5"

有什么建议或想法吗?

您可以尝试使用ExceptNOTAny来确保flags集合中的每个值都匹配

var tbs = db.MyContents
           .Select(a => new { a.Id, FlagList = a.Flags.Select(f => f.Name) })
           .Where(f => !flags.Except(f.FlagList).Any());

编辑

我看到你编辑了你的问题,你只需要在 linq 中添加一些逻辑 where

var tbs = c.Select(a => new { a.Id, FlagList = a.Flags.Select(f => f.Name) })
               .Where(f => !flags.Except(f.FlagList).Any() && flags.Count() > 0 ||
                       flags.Count() == 0 && f.FlagList.Count() == 0);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Linq使用方法语法在相关表中查找表中具有特定值的所有记录

来自分类Dev

如何使用linq删除与条件匹配的所有列表行?

来自分类Dev

C#JSON.Net使用LINQ解析并获取与值匹配的所有元素的列表

来自分类Dev

使用Linq获取具有重复值的表中的单个记录

来自分类Dev

使用LINQ获取列表中的所有DISTINCT项

来自分类Dev

仅使用所有匹配键查找记录

来自分类Dev

使用LINQ选择列中的所有不同值

来自分类Dev

尝试使用linq一起列出列表中的所有值

来自分类Dev

使用LINQ从列表中获取具有特定属性最大值的对象

来自分类Dev

使用linq返回具有多个值存储在字典中的列表

来自分类Dev

使用LINQ从列表中获取具有特定属性最大值的对象

来自分类Dev

如何使用LINQ在列表中查找在另一个列表中成员最多的所有项目?

来自分类Dev

LINQ:获取列表中具有最大属性值的记录

来自分类Dev

使用Linq在列表中以逗号分隔的值查找值

来自分类Dev

如何使用linq获取列表中不同日期的所有第一条记录

来自分类Dev

如何使用Linq确定List <T>中的所有对象是否具有相同的属性值

来自分类Dev

LINQ to SQL。如何使用.take()选择所有记录

来自分类Dev

如何使用linq对实体求和所有月度记录?

来自分类Dev

如何使用linq对实体求和所有月度明智的记录?

来自分类Dev

使用linq命令选择所有记录的单个列的数据

来自分类Dev

Linq 查询使用 select new 语句返回所有记录

来自分类Dev

使用Linq获取具有特定外键的记录

来自分类Dev

使用LINQ更新记录

来自分类Dev

C#Linq,使用linq从列表中查找最高编号

来自分类Dev

如何使用LINQ to XML连接具有相同名称值的所有子元素

来自分类Dev

使用Linq查找符合这些条件的所有行

来自分类Dev

使用LINQ to SQL匹配特定日期的所有行

来自分类Dev

使用LINQ查询列表

来自分类Dev

使用LINQ的单独列表

Related 相关文章

  1. 1

    使用Linq使用方法语法在相关表中查找表中具有特定值的所有记录

  2. 2

    如何使用linq删除与条件匹配的所有列表行?

  3. 3

    C#JSON.Net使用LINQ解析并获取与值匹配的所有元素的列表

  4. 4

    使用Linq获取具有重复值的表中的单个记录

  5. 5

    使用LINQ获取列表中的所有DISTINCT项

  6. 6

    仅使用所有匹配键查找记录

  7. 7

    使用LINQ选择列中的所有不同值

  8. 8

    尝试使用linq一起列出列表中的所有值

  9. 9

    使用LINQ从列表中获取具有特定属性最大值的对象

  10. 10

    使用linq返回具有多个值存储在字典中的列表

  11. 11

    使用LINQ从列表中获取具有特定属性最大值的对象

  12. 12

    如何使用LINQ在列表中查找在另一个列表中成员最多的所有项目?

  13. 13

    LINQ:获取列表中具有最大属性值的记录

  14. 14

    使用Linq在列表中以逗号分隔的值查找值

  15. 15

    如何使用linq获取列表中不同日期的所有第一条记录

  16. 16

    如何使用Linq确定List <T>中的所有对象是否具有相同的属性值

  17. 17

    LINQ to SQL。如何使用.take()选择所有记录

  18. 18

    如何使用linq对实体求和所有月度记录?

  19. 19

    如何使用linq对实体求和所有月度明智的记录?

  20. 20

    使用linq命令选择所有记录的单个列的数据

  21. 21

    Linq 查询使用 select new 语句返回所有记录

  22. 22

    使用Linq获取具有特定外键的记录

  23. 23

    使用LINQ更新记录

  24. 24

    C#Linq,使用linq从列表中查找最高编号

  25. 25

    如何使用LINQ to XML连接具有相同名称值的所有子元素

  26. 26

    使用Linq查找符合这些条件的所有行

  27. 27

    使用LINQ to SQL匹配特定日期的所有行

  28. 28

    使用LINQ查询列表

  29. 29

    使用LINQ的单独列表

热门标签

归档