Nehme jedes zweite Objekt in der Liste

7

Ich habe ein IEnumerable und möchte ein neues IEnumerable mit jedem n-ten Element erhalten.

Kann das in Linq gemacht werden?

    
Cristi Diaconescu 25.08.2010, 16:16
quelle

3 Antworten

23

Habe es selbst herausgefunden ...

Die Methode IEnumerable<T>.Where() hat eine Überladung, die den Index des aktuellen Elements annimmt - genau das, was der Arzt bestellt hat.

%Vor%

Dies würde zurückgeben

%Vor%

Update: Um sowohl meinen Anwendungsfall als auch Dan Taos Vorschlag zu behandeln, geben wir auch an, was das erste zurückgegebene Element sein sollte:

%Vor%

... würde zurückkehren

%Vor%     
Cristi Diaconescu 25.08.2010, 16:17
quelle
8

Um Vorschlag von Cristi zu implementieren:

%Vor%

Verwendung:

%Vor%     
Dan Tao 25.08.2010 16:21
quelle
0

Wenn nicht LINQ, können Sie auch eine Erweiterungsmethode mit yield erstellen.

%Vor%     
Albin Sunnanbo 25.08.2010 18:42
quelle

Tags und Links