Ich brauche eine einfache Möglichkeit, mehrere Sammlungen zu durchlaufen, ohne sie wirklich zusammenzuführen, und ich konnte in .NET nichts finden, was so aussieht. Es fühlt sich an, als ob dies eine etwas gewöhnliche Situation sein sollte. Ich will das Rad nicht neu erfinden. Ist etwas eingebaut, das so etwas macht:
%Vor%Versuchen Sie die in 3.5 hinzugefügte SelectMany-Erweiterungsmethode.
%Vor% Der Code SelectMany(x => x)
bewirkt, dass eine Sammlung von Sammlungen in einer einzigen Sammlung abgeflacht wird. Dies wird auf eine faule Art und Weise durchgeführt und ermöglicht eine einfache Verarbeitung, wie oben gezeigt.
Wenn nur C # 2.0 verfügbar ist, können Sie einen Iterator verwenden, um die gleichen Ergebnisse zu erzielen.
%Vor% Verwenden Sie einfach die Erweiterungsmethode Enumerable.Concat()
, um zwei IEnumerables zu verketten. Mach dir keine Sorgen, es kopiert sie nicht wirklich in ein einziges Array (wie du aus dem Namen entnehmen kannst), es erlaubt dir einfach, sie alle aufzuzählen, als wären sie ein IEnumerable.
Wenn Sie mehr als zwei haben, dann wäre Enumerable.SelectMany()
besser.
Tags und Links .net c# ienumerable