2016-05-27 12 views
0

Ich habe eine Methode, die eine Liste von MyClass zurückgibt. Innerhalb dieser Methode habe ich eine Liste von MyClass in kleinere Teile von 500 Elementen aufgeteilt. Jetzt frage ich mich, ob dies zusammen mit einer yield-Anweisung möglich ist. Momentan habe ich diesen Code. Aber ich bin gespannt, ob es eine Möglichkeit gibt, den ganzen Haufen ohne diese unordentliche zweite innere Schleife zurückzugeben.Rendite zurück eine Reihe von Elementen

IEnumerable<MyClass> DoSomething() 
{ 
    List<MyClass> myList = ... 
    foreach(var chunk in myList.Chunk(500)) // split the list in smaller lists 
    { 
     foreach(MyClass m in chunk) yield return m; 
    } 
} 

Natürlich funktioniert das, aber ich frage mich, ob ich auch die yield verwenden können deferredly den ganzen Haufen zurückzukehren.

+0

Was bedeutet 'Chunk' tun? –

+0

teilt es die Liste in eine Liste von Listen auf – HimBromBeere

+0

Können Sie die Implementierung teilen? –

Antwort

0

Unter der Annahme, dass Chunk kehrt eine Art List<> Sie tun können:

IEnumerable<IList<MyClass>> DoSomething() 
{ 
    List<MyClass> myList = ... 
    foreach(var chunk in myList.Chunk(500)) // split the list in smaller lists 
    { 
     yield return chunk; 
    } 
}