트리와 같은 데이터 구조에서 평평한 노드 목록은 종종 중첩 레벨에서 요구됩니다. 예를 들어, 하위 노드 컬렉션이 포함 된 "요소"속성이있는 "MyNode"객체를 고려하십시오. 특정 속성 값이있는 모든 노드가있는 평평한 목록을 얻기 위해 LINQ는 우아한 솔루션을 제공합니다.
솔루션
커스텀 트리의 일반 버전
<code class="language-csharp">// 扁平化树 IEnumerable<mynode> flatTree = e.SelectMany(c => Flatten(c.Elements)).Concat(new[] { e }); // 按属性值筛选扁平化列表 var result = flatTree.Where(n => n.group == 1);</code>
对于结构与“MyNode”不同的树,您可以使用扁平化函数的泛型版本,该版本采用一个函数来检索子节点:
위 내용은 LINQ는 어떻게 특정 속성 값으로 계층 적 데이터와 필터를 효율적으로 평평하게 평평하게 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!