Heim >Backend-Entwicklung >C++ >Wie teilt man eine Liste effizient in kleinere Unterlisten einer definierten Größe auf?

Wie teilt man eine Liste effizient in kleinere Unterlisten einer definierten Größe auf?

DDD
DDDOriginal
2025-01-18 04:26:08483Durchsuche

How to Efficiently Split a List into Smaller Sublists of a Defined Size?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn