집 >
백엔드 개발 >
C++ >
LINQ를 사용하여 트리 구조와 필터를 평평하게하는 방법은 무엇입니까?
LINQ를 사용하여 트리 구조와 필터를 평평하게하는 방법은 무엇입니까?
Patricia Arquette
풀어 주다: 2025-01-29 00:51:14
원래의
287명이 탐색했습니다.
린크 플랫 형태의 트리 구조를 사용하고 속성 에 따라 필터를 사용하십시오.
트리 형태의 데이터 필드에서 계층 구조를 평평한 목록으로 변환해야합니다. 부모와 요소 속성이있는 계층화 된 클래스 모드가 있다고 가정하고 모든 MyNode 인스턴스를 단일 목록에서 추출하여 나무를 평평하게하려고합니다. 구체적으로, 당신은 그룹에서 1과 같은 노드를 얻는 데 관심이 있습니다. 다음 LINQ 쿼리는 솔루션을 제공합니다.
다음은 작동 원리입니다
concat (rootnodes)
: 오프 스프링의 평평한 목록을 원래 mynodes 목록에 연결하십시오.
where (node = & gt; node.group == 1) : 평평한 목록을 필터링하며 그룹 속성 1이있는 노드 만 포함합니다.
코드의 가독성을 향상 시키려면 평평한 확장 방법을 사용하는 것을 고려하십시오.
var flatList = rootNodes.SelectMany(node => Flatten(node.Elements)).Concat(rootNodes).Where(node => node.group == 1);
로그인 후 복사
그런 다음 나무 통화 확장 방법을 사용하고 자손을 검색하는 방법을 지정하십시오.
LINQ 플랫 레벨 데이터를 사용하여 가져 오는 이점을 누리십시오!
위 내용은 LINQ를 사용하여 트리 구조와 필터를 평평하게하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!