LINQ를 사용하여 트리 구조물을 단일 목록으로 평평하게합니다
)를 선택하고 그 어린이를 재귀 적으로 평평하게 한 다음 평평한 어린이들을 원래 노드와 연결하여 작동합니다.
. 평평한 목록을 필터링
인 노드를 선택합니다.
<code class="language-csharp">public static IEnumerable<MyNode> Flatten(this IEnumerable<MyNode> e) { return e.SelectMany(c => c.Elements.Flatten()).Concat(e); }</code>
개선 된 코드 선명도 및 재사용 성 :
<code>c.Elements
일반 방법 :
더 넓은 적용 가능성의 경우, 트리 구조를 수락하고 노드에서 후손을 검색하는 함수를 수락하여 일반 확장 방법을 생성 할 수 있습니다.
Where
group
<code class="language-csharp">IEnumerable<MyNode> filteredNodes = flattenedNodes.Where(node => node.group == 1);</code>
메소드를 사용하려면 트리의 루트에서 간단히 호출하십시오.
위 내용은 LINQ를 사용하여 트리 구조를 단일 레벨 목록으로 평평하게하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!