2010-07-20 124 views
0
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

回答

0
].Contains(yCols.Select(y=>y.checkPoint)) .It's not "y.Variable" but "y.checkPoint" 
0
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中使用=。
  • 項目不包含集合。集合包含項目。