2010-09-21 18 views
13

La requêteExiste-t-il une syntaxe LINQ pour les surcharges (T, int) de Where et Select?

var q = from elem in collection 
     where someCondition(elem) 
     select elem; 

se traduit

var q = collection.Where(elem => someCondition(elem)); 

Y at-il une syntaxe LINQ qui se traduirait à ce qui suit?

var q = collection.Where((elem, index) => someCondition(elem, index)); 
+0

est l'indice d'un membre de votre classe élém 'ou un entier? –

+0

@vc 74: Plusieurs façons de répondre à votre question ... ① Déplacez le curseur sur le mot «Où» et appuyez sur F12. ② Regardez le titre de cette question. – Timwi

+2

@Timwi, ce que vous appelez "syntaxe LINQ" est en fait appelé "syntaxe de compréhension de requête" –

Répondre

13

Il n'y a pas de syntaxe LINQ pour cela.

Un travail autour simple pourrait être:

var q = from elem in collection.Select((x,i) => new {x,i}) 
     where someCondition(elem.x,elem.i) 
     select elem.x; 
+0

[Merci!] (Http://meta.stackexchange.com/questions/700/) – Timwi