LinQ在where子句中包含使用&&

问题描述:

var yCols = from t in flowPath 
       select new {checkPoint = t["CheckPoint"]}; 
    var test = from x in operations 
       where x["Ops"] = "test" && x["check"].Contains(yCols.Select(y=>y.Variable)) 

不知何故,包含where子句的部分不是right.yCols返回检查点的集合,如果X [“检查”]包含的任何值然后检索value.Whats的最佳方式去做这个。LinQ在where子句中包含使用&&

+0

什么是操作?你为什么要做一个投影来获取yCols,然后立即做另一个投影?这究竟意味着什么*做*? – 2010-07-20 10:04:37

+0

你的期望是什么?它究竟做错了什么?对于初学者来说,'x [“Ops”] =“test”'应该是'x [“Ops”] ==“test”'。 – 2010-07-20 10:10:09

].Contains(yCols.Select(y=>y.checkPoint)) .It's not "y.Variable" but "y.checkPoint" 

IEnumerable<string> yCols = 
    from t in flowPath 
    select t["CheckPoint"]; 

IEnumerable<Operation> test = 
    from x in operations 
    where x["Ops"] == "test" && yCols.Contains(x["check"]) 
    select x; 
  • 你的代码更清楚,如果你不使用VAR。
  • 使用==比较和=分配。不要在= where中使用=。
  • 项目不包含集合。集合包含项目。