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]

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

/// <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!