Feedback

C# - LINQ: SubItems mit auswählen

Veröffentlicht von am 28.11.2014
(0 Bewertungen)
Diese Erweiterungsmethode ist in der Lage die Sub-Elemente einer Auflistung, und deren Sub-Elemente usw., linear aufzulisten.

Mit kleinen Erweiterungen der Funktion kann das Beispielsweise bei hierarchischen Strukturen (TreeView o.ä.) ganz Hilfreich sein.

Benötigte Namespaces
System
System.Collections.Generic
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

/// <summary>
/// Listet alle Elemente und deren Sub-Elemente auf.
/// </summary>
/// <typeparam name="T">Der Typ der Elemente.</typeparam>
/// <param name="source">Die Quellliste mit Sub-Elementen.</param>
/// <param name="selector">Eine Funktion, welche die Sub-Element-Liste eines Elements ausw�hlt.</param>
/// <param name="deep">Die Anzahl der Ebenen, die aufgelistet werden sollen.</param>
/// <returns>Eine Liste mit allen Elementen und Sub-Eelenten.</returns>
public static IEnumerable<T> SelectSubItems<T>(this IEnumerable<T> source, Func<T, IEnumerable<T>> selector, int deep)
{
    foreach (var item in source)
    {
        yield return item;
        if (deep > 1)
            foreach (var subItem in SelectSubItems(selector(item), selector, deep - 1))
                yield return subItem;
    }
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!