소프트웨어 개발에서는 트리와 같은 구조로의 조직 인 데이터가 종종 필요합니다. 일반적인 작업은 나무를 평평한 목록 또는 세트로 변환하는 것입니다. 이는 .NET의 LINQ (Language Integration Query) 프레임 워크를 사용하여 구현할 수 있습니다.
MyNode 클래스로 표현 된 다음 간단한 트리 구조가 있다고 가정합니다.
우리는 ienumeration 를 얻고 트리에서 모든 노드 (내부 노드 포함)의 목록을 단일 플랫 목록으로 가져오고 싶습니다. 또한이 목록을 필터링하고 그룹 속성이 1과 같은 노드 만 필터링하기를 희망합니다.
트리와 같은 구조를 표시하기 위해 LINQ의 SelectMany 컴퓨팅을 사용하여 각 노드의 모든 자손을 검색 할 수 있습니다. 다음의 평평한 확장 방법이 얻어지고 입력 요소를 사용할 수 있고 해당 요소 속성은 재귀 적으로 평평합니다.
그룹의 Leflation 목록을 따르기 위해서는 where 연산자를 사용할 수 있습니다.
이 솔루션은 효과적이고 우아하게 평평하며 원치 않는 노드는 그룹 속성에 따라 필터링됩니다.
위 내용은 LINQ는 어떻게 특정 속성으로 트리 구조와 필터를 평평하게 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!