2010-07-12 3 views
1

J'ai un tableau de chaînes et un IQueryable (appelé MyTypeQbl).Une manière plus facile de "n'est pas dans" dans un langage linq dynamique?

Je souhaite parcourir les chaînes du tableau qui n'ont pas de chaîne MyType.MyString correspondante.

Je pensais que ce serait:

foreach (string str in stringsArr.Where(s => MyTypeQbl.Count(m => m.MyString == s) == 0)) 

Mais est-ce juste plus complexe que ce qu'elle devrait être? Existe-t-il un moyen plus simple de représenter cela?

La boucle mentale dans laquelle je suis coincé est que j'essaie de trouver des chaînes dans un tableau de chaînes qui ne correspondent pas à une propriété à l'intérieur des objets dans un IQueryable!

Répondre

3
foreach (string str in 
    stringsArr.Where(s => !MyTypeQbl.Any(m => m.MyString == s))) 
+3

Vous devriez expliquer pourquoi c'est mieux: Dans le formulaire original, la collection entière est analysée pour compter le nombre de correspondances. Dans votre formulaire révisé, l'analyse est annulée une fois qu'une correspondance est trouvée. –

Questions connexes