【问题标题】:How to do a dynamic Where clause Comparison over a List of Strings in Linq如何对 Linq 中的字符串列表进行动态 Where 子句比较
【发布时间】:2018-07-11 22:05:22
【问题描述】:

编辑我的问题:

IQueryable<dbJob> dbjobs = from a in TableA
                           join b in TableB on a.ID equals b.ID
                           where a.Attribute == X && 
                                 a.Attribute == Y &&
                                 a.Attribute  == Z
                           select b;

这是基本查询,它工作正常。我想要类似的查询,但不是硬编码值(X、Y 和 Z),我有字符串列表,列表大小可以是 1、2 或 3 或 10。

【问题讨论】:

  • 只需检查a.Attribute 是否在您的列表中包含...您可能还想考虑对此类事情使用方法语法,它非常 更易于阅读,更适合语言
  • 不应该还是?
  • 当你执行包含时,它是一个 OR。我想要和
  • "当你做包含时,它是一个 OR。我想要 AND" 一个字符串怎么可能是多个字符串?假设您的属性是“steve”,而您的字符串列表是“steve”、“sally”、“heather”。检查"steve" == "steve" &amp;&amp; "steve" == "sally" &amp;&amp; "steve" == "heather" 没有任何意义。除非您的字符串列表是一堆重复项,否则您的属性无法匹配列表中的多个字符串,但是列表的意义何在?

标签: c# linq


【解决方案1】:

一个简单的解决方案是创建一个验证方法,将两个列表作为参数并进行比较,然后返回 true 或 false,然后在 where 子句中使用它。

【讨论】:

    猜你喜欢
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多