anzuzeigen In der Softwareentwicklung sind häufig Daten erforderlich, die Gewebe in eine baumähnliche Struktur sind. Eine häufige Aufgabe besteht darin, Bäume in flache Listen oder Sets umzuwandeln. Dies kann mit einem LINQ -Framework (Language Integration Query) im .NET implementiert werden.
unter der Annahme, dass wir die folgende einfache Baumstruktur haben, die von der MyNode -Klasse ausgedrückt wird:
Wir erhalten eine IEnumeration
<code class="language-csharp">class MyNode { public MyNode Parent; public IEnumerable<MyNode> Elements; public int Group { get; set; } }</code>
Um der Liste der LEFLATION der Gruppe zu folgen, können wir den Where -Operator verwenden:
<code class="language-csharp">public static IEnumerable<MyNode> Flatten(this IEnumerable<MyNode> elements) => elements.SelectMany(c => Flatten(c.Elements)).Concat(elements);</code>
Diese Lösung ist effektiv und elegant abgeflacht, und die unerwünschten Knoten werden gemäß den Gruppenattributen herausgefiltert.
<code class="language-csharp">var flattenedList = treeElements.Flatten().Where(node => node.Group == 1);</code>
Das obige ist der detaillierte Inhalt vonWie kann LINQ eine Baumstruktur und einen Filter durch eine bestimmte Eigenschaft filtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!