Heim >Backend-Entwicklung >C++ >Wie teilt man eine Liste effizient in kleinere Unterlisten einer definierten Größe auf?
Teilen Sie die Liste in Unterlisten der angegebenen Größe auf
In diesem Artikel wird erläutert, wie Sie eine Liste in Unterlisten einer bestimmten Größe aufteilen, und es werden zwei effiziente Methoden bereitgestellt.
Methode 1: Erweiterungsmethoden verwenden
Der folgende Code zeigt, wie die Listenaufteilung durch Erweiterungsmethoden implementiert wird:
<code class="language-csharp">public static class ListExtensions { public static List<List<T>> ChunkBy<T>(this List<T> source, int chunkSize) { return source .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / chunkSize) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); } }</code>
Verwendung: Rufen Sie direkt die Methode ChunkBy
der Liste auf und übergeben Sie dabei die erforderliche Blockgröße als Parameter. Teilen Sie beispielsweise eine Liste mit 18 Elementen in Blöcke mit jeweils 5 Elementen auf:
<code class="language-csharp">List<List<int>> chunks = myList.ChunkBy(5);</code>
Das Ergebnis ist eine Liste mit vier Unterlisten, die jeweils fünf Elemente enthalten.
Methode 2: Schleifen verwenden
Eine andere Möglichkeit ist die Verwendung einer einfachen Schleife:
<code class="language-csharp">public static List<List<T>> SplitList<T>(List<T> list, int chunkSize) { List<List<T>> chunks = new List<List<T>>(); while (list.Count > 0) { List<T> chunk = new List<T>(chunkSize); for (int i = 0; i < chunkSize && list.Count > 0; i++) { chunk.Add(list[0]); list.RemoveAt(0); } chunks.Add(chunk); } return chunks; }</code>
Diese Methode akzeptiert eine Liste und die gewünschte Blockgröße als Argumente, erstellt eine neue Liste von Listen und durchläuft die Eingabeliste, wobei chunkSize
Elemente zu jeder neuen Unterliste hinzugefügt werden, bis die Eingabeliste leer ist.
Beide Methoden können die Liste effektiv in Unterlisten einer bestimmten Größe aufteilen. Wählen Sie die Methode, die Ihren spezifischen Anforderungen und Ihrem Codierungsstil am besten entspricht.
Das obige ist der detaillierte Inhalt vonWie teilt man eine Liste effizient in kleinere Unterlisten einer definierten Größe auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!