이 프로그래밍 연습을 설정했습니다.1 LINQ 문을 사용하여 계층 적 데이터에서 트리 채우기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class DataObject {
public int ID { get; set; }
public int ParentID { get; set; }
public string Data { get; set; }
public DataObject(int id, int pid, string data) { this.ID = id; this.ParentID = pid; this.Data = data; }
}
class TreeNode {
public DataObject Data {get;set;}
public List<DataObject> Children { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<DataObject> data = new List<DataObject>();
data.Add(new DataObject(1, 0, "Item 1"));
data.Add(new DataObject(2, 0, "Item 2"));
data.Add(new DataObject(21, 2, "Item 2.1"));
data.Add(new DataObject(22, 2, "Item 2.2"));
data.Add(new DataObject(221, 22, "Item 2.2.1"));
data.Add(new DataObject(3, 0, "Item 3"));
}
}
}
원하는 출력 등등 2 개 아이 부재와 같은 데이터 객체의리스트를 가질 것이다 항목 1, 2 및 3 항목을 갖는 2, 3 개의 TreeNode의리스트이다.
저는 LINQ에서 단 하나의 문을 사용하여이 트리 (또는 포리스트)를 채우려고했습니다. 간단한 그룹을 통해 원하는 데이터를 얻을 수 있지만 문제는 TreeNode 객체로 구성하는 것입니다.
누군가가 이에 대한 힌트 또는 불가능 결과를 줄 수 있습니까? 당신은 두 수준의 나무를 원하는 경우
2 레벨 또는 임의의 레벨 수를 가진 나무 목록을 원한다고 말하고 있습니까? TreeNode 클래스를 정의한 방법으로 루트와 바로 밑의 자식 두 수준 만있는 트리를 사용할 수 있습니다. –
예. 나는 임의의 깊이가 필요해. 나는 코드 샘플을 재현 할 때 그것을 놓쳤다 고 생각한다. – Midhat