Wybierz parzyste / nieparzyste elementy w IEnumerable <T>? [duplikować]

Możliwy duplikat:
Pobieranie nieparzystej / parzystej części sekwencji za pomocą LINQ
Jak mogę uzyskać każdy n-ty przedmiot z listy <T>?

Używam HtmlAgilityPack i C # do analizowania niektórych HTML.

<div id="post-8266">
<div class="ruler"> </div>
<div id="post-8266">
<div class="ruler"> </div>
<div id="post-8266">
<div class="ruler"> </div>
<div id="post-8266">
<div class="ruler"> </div>

Zasadniczo mam te elementy, każdy we własnym obiekcie, wewnątrz IEnumerable.

Czy istnieje elegancki sposób na uzyskanie każdego elementu N / 2 w kolekcji. Czyli pomiń każdy div z klasą.ruler?

Musiałbym przejść przez wynikowy zestaw, więc albo skopiuję każdy znaleziony obiekt do nowego IEnumerable, albo po prostu użyję go w funkcji foreach.

Na przykład:

//Copying resulting set to new IEnumerable<T>:
var odds = elements.SelectOdds();

//Using it inline for my usage:
foreach (var x in elements.SelectOdds())
{   
}

Które opcje byłyby najlepsze i jak mogę to osiągnąć elegancko?

questionAnswers(2)

yourAnswerToTheQuestion