Heim > Backend-Entwicklung > C++ > Wie kann ich eine Sammlung mithilfe von LINQ in Teilmengen (nahezu) gleicher Größe aufteilen?

Wie kann ich eine Sammlung mithilfe von LINQ in Teilmengen (nahezu) gleicher Größe aufteilen?

Linda Hamilton
Freigeben: 2025-01-20 03:46:09
Original
581 Leute haben es durchsucht

How Can I Split a Collection into Subsets of (Nearly) Equal Size Using LINQ?

Teilen Sie eine Sammlung mit LINQ in Teilmengen auf

LINQ ermöglicht die Aufteilung einer Sammlung in eine bestimmte Anzahl von Teilmengen. Im Gegensatz zur gleichmäßigen Aufteilung kann die letzte Teilmenge eine andere Anzahl von Elementen haben als die anderen Teilmengen.

Um dies zu erreichen, können wir eine einfache LINQ-Erweiterungsmethode verwenden:

<code class="language-csharp">static class LinqExtensions
{
    public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
    {
        int i = 0;
        var splits = from item in list
                     group item by i++ % parts into part
                     select part.AsEnumerable();
        return splits;
    }
}</code>
Nach dem Login kopieren

Mit dieser Methode können Sie die Sammlung in Untersammlungen unterteilen und gleichzeitig sicherstellen, dass die letzte Teilmenge unterschiedlich groß sein kann. Der obige Code tut dies, indem er Elemente basierend auf ihrem Index modulo der Anzahl der Teilmengen gruppiert und sie effektiv verschiedenen Teilmengen zuordnet.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Sammlung mithilfe von LINQ in Teilmengen (nahezu) gleicher Größe aufteilen?. 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