Feedback

C# - LINQ: Liste aufspalten

Veröffentlicht von am 29.10.2014
(0 Bewertungen)
Die hier gezeigte Erweiterungsmethode kann eine Auflistung in möglichst gleich große Teile spalten.

Benötigte Namespaces
System
System.Collections.Generic
System.Linq
/// <summary>
/// Spaltet eine Auflistung in möglichst gleich Große Teile.
/// </summary>
/// <typeparam name="T">Der Typ der Elemente in der Auflistung.</typeparam>
/// <param name="source">Die zu spaltende Quellliste.</param>
/// <param name="parts">Die Anzahl der Teile.</param>
/// <returns>Eine Auflistung von Teillisten aus <paramref name="source"/>.</returns>
/// <remarks>Sollte <paramref name="source"/> weniger Elemente enthalten als <paramref name="parts"/>, wird die zurück gegebene Liste nur so lang sein wie die Quellliste.</remarks>
public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> source, int parts)
{
    if (parts <= 0)
        throw new ArgumentOutOfRangeException("parts");
    int i = 0;
    return source.GroupBy(x => i++ % parts);
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!