2010-07-20 5 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)) 

D'une certaine façon la contient dans laquelle une partie de la clause n'est pas right.yCols retourne Collection de postes de contrôle et si x [ « Cochez la case »] contient l'une des valeurs les récupérer ensuite value.Whats la meilleure façon pour faire ça.LinQ clause where contient en utilisant &&

+0

Qu'est-ce que les opérations? Pourquoi faites-vous une projection pour obtenir des yCols et en faire immédiatement une autre? Qu'est-ce que cela signifie réellement pour * faire *? –

+0

Qu'attendez-vous, et que fait-il mal, exactement? Pour commencer, 'x [" Ops "] =" test "' devrait être 'x [" Ops "] ==" test "'. –

Répondre

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; 
  • Votre code est plus clair si vous ne l'utilisez var.
  • Utilisez == pour comparer et = pour affecter. N'utilisez pas = dans où.
  • Les éléments ne contiennent pas de collections. Les collections contiennent des objets.
Questions connexes