Heim > Backend-Entwicklung > C++ > Wie teilt man eine Liste korrekt in kleinere Listen einer benutzerdefinierten Größe auf (z. B. 30 oder weniger)?

Wie teilt man eine Liste korrekt in kleinere Listen einer benutzerdefinierten Größe auf (z. B. 30 oder weniger)?

Barbara Streisand
Freigeben: 2025-01-18 04:47:12
Original
652 Leute haben es durchsucht

How to Correctly Split a List into Smaller Lists of a Custom Size (e.g., 30 or less)?

Teilen Sie die Liste in kleinere Listen mit benutzerdefinierter Größe auf

Beim Aufteilen einer Liste in kleinere Listen einer bestimmten Größe kann es frustrierend sein, auf eine falsche Listenaufteilung zu stoßen. Sehen wir uns an, wie Sie Ihre Funktion splitList ändern können, um sicherzustellen, dass sie genau in Listen mit einer Größe von 30 oder weniger aufgeteilt wird.

Das Problem mit Ihrer ursprünglichen Funktion ist die Schleifenberechnung: for (int i=(int)(Math.Ceiling((decimal)(locations.Count/nSize))); i>=0; i--). Anstatt von der gewünschten Anzahl an Unterlisten bis 0 zu iterieren, durchlaufen Sie eine Schleife von einem höheren Wert, was zu einer falschen Aufteilung führt.

Die aktualisierte Funktion sollte sein:

<code class="language-c#">public static List<List<float>> splitList(List<float> locations, int nSize = 30)
{
    List<List<float>> list = new List<List<float>>();

    int numLists = (int)(Math.Ceiling((decimal)(locations.Count / nSize)));

    for (int i = 0; i < numLists; i++)
    {
        List<float> subLocat = new List<float>(locations); // 创建locations的副本

        if (subLocat.Count >= ((i * nSize) + nSize))
            subLocat.RemoveRange(i * nSize, nSize);
        else
            subLocat.RemoveRange(i * nSize, subLocat.Count - (i * nSize));

        Debug.Log("Index: " + i.ToString() + ", Size: " + subLocat.Count.ToString());
        list.Add(subLocat);
    }

    return list;
}</code>
Nach dem Login kopieren

In dieser aktualisierten Version iteriert die Schleife von 0 bis zur gewünschten Anzahl von Unterlisten (numLists). Dadurch wird sichergestellt, dass die Funktion an der entsprechenden Stelle mit der Aufteilung beginnt. Darüber hinaus verwendet der Code List<float> subLocat = new List<float>(locations);, um eine Kopie von locations zu erstellen, wodurch das Problem einer Änderung der Originalliste vermieden wird.

Das obige ist der detaillierte Inhalt vonWie teilt man eine Liste korrekt in kleinere Listen einer benutzerdefinierten Größe auf (z. B. 30 oder weniger)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage