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
Linda HamiltonOriginal
2025-01-20 03:46:09583Durchsuche

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>

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!

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