Wie kann ich jedes n-te Item von einer List & lt; T & gt;
Ich mit .NET 3.5 und möchte in der Lage sein, alles zu erlangen, *n
*te Element aus einer Liste. Ich bin nicht gestört, als ob es erreicht mit einem lambda-Ausdruck oder mit LINQ.
Bearbeiten
Sieht aus wie diese Frage provoziert ganz viel Debatte (was eine gute Sache ist, oder?). Das wichtigste, was ich gelernt habe, ist, dass, wenn Sie denken, Sie kennen jede Möglichkeit, etwas zu tun (auch einfach), denken Sie noch einmal!
Kommentar zu dem Problem
Ich habe nicht Bearbeiten, keine Bedeutung hinter Ihrer ursprünglichen Frage, ich nur gereinigt und verwendet groß - / Kleinschreibung und Zeichensetzung richtig. (.NET groß geschrieben, LINQ ist in Großbuchstaben, und es ist nicht ein 'lambda', ist es ein lambda-Ausdruck'.) Kommentarautor: George Stocker♦
Sie ersetzt "Zimmerdeko" mit "sicher" die sind überhaupt nicht Synonym. Kommentarautor: mquander
Meint er damit 'pingelig'? Kommentarautor: George Stocker♦
Scheint so. Haben sicher nicht sinnvoll ist, entweder, es sei denn, es ist "ich bin nicht sicher, ob es erreichbar mit..." Kommentarautor: Samuel
Ja, so wie ich es verstehe, das ist richtig. Kommentarautor: mquander
InformationsquelleAutor der Frage Paul Suart | 2009-03-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort mquander
Ich weiß, es ist "old school", aber warum nicht einfach eine for-Schleife verwenden mit stepping = n?
InformationsquelleAutor der Antwort Michael Todd
Klingt wie
würde den trick tun. Ich sehe nicht die Notwendigkeit für die Verwendung von Linq oder lambda-Ausdrücke.
EDIT:
Machen es
schreiben und dich in eine LINQish Weg
2. Bearbeiten:
Damit es noch mehr LINQish
InformationsquelleAutor der Antwort MartinStettner
Können Sie die überlast, Wo die Pässe der index zusammen mit dem element
InformationsquelleAutor der Antwort JaredPar
For-Schleife
InformationsquelleAutor der Antwort Quintin Robinson
Ich bin mir nicht sicher, ob es möglich ist, mit einem LINQ-Ausdruck, aber ich weiß, dass Sie können verwenden Sie die
Where
Erweiterung Methode, es zu tun. Zum Beispiel, um jeden fünften Punkt:Diese erhalten das erste Element und jeder fünfte von dort. Wenn Sie anfangen wollen, an das fünfte Element anstelle des ersten, vergleichen Sie mit 4 statt vergleichen mit 0.
InformationsquelleAutor der Antwort Guffa
Ich denke, wenn Sie eine linq-Erweiterung, Sie sollten in der Lage zu operieren, die am wenigsten spezifische Oberfläche, also auf IEnumerable. Natürlich, wenn Sie sich für Geschwindigkeit, besonders für große N Sie vielleicht bieten eine überlastung für den indizierten Zugriff. Letztere beseitigt die Notwendigkeit des Durchsuchens große Mengen von nicht benötigten Daten, und viel schneller als die Where-Klausel. Sowohl überlastungen können die compiler-wählen Sie die am besten geeignete Variante.
InformationsquelleAutor der Antwort belucha
Ausgabe
InformationsquelleAutor der Antwort Anwar Ul Haq
Imho keine Antwort ist richtig. Alle Lösungen beginnt bei 0. Aber ich will die echte N-te element
InformationsquelleAutor der Antwort user2340145