MyClass
è costituito da ID
ParentID
e List<MyClass>
come Children
(ID/ParentID) lista di Elenco gerarchico
ho lista di MyClass
come questo
ID ParentID
1 0
2 7
3 1
4 5
5 1
6 2
7 1
8 6
9 0
10 9
uscita (Elenco gerarchico) come List<MyClass>
1 __ 3
|__ 5__ 4
|__ 7__ 2__ 6__ 8
|__ 11
9 __10
Qual è il modo più semplice per ottenere questo in linq?
PS: ParentID
non allineati
Edit:
mia prova:
class MyClass
{
public int ID;
public int ParentID;
public List<MyClass> Children = new List<MyClass>();
public MyClass(int id, int parent_id)
{
ID = id;
ParentID = parent_id;
}
}
inizializzare i dati di esempio e cercare di raggiungere i dati gerarchici
List<MyClass> items = new List<MyClass>()
{
new MyClass(1, 0),
new MyClass(2, 7),
new MyClass(3, 1),
new MyClass(4, 5),
new MyClass(5, 1),
new MyClass(6, 2),
new MyClass(7,1),
new MyClass(8, 6),
new MyClass(9, 0),
new MyClass(10, 9),
new MyClass(11, 7),
};
Dictionary<int, MyClass> dic = items.ToDictionary(ee => ee.ID);
foreach (var c in items)
if (dic.ContainsKey(c.ParentID))
dic[c.ParentID].Children.Add(c);
, come si può vedere, un sacco di articoli che non voglio ancora nel dizionario
Che tipo di struttura dati dovrebbe essere l'uscita in? – Jon
@Jon: Si prega di fare riferimento alla mia domanda aggiornata –
Ma un 'Elenco' non è una struttura gerarchica dei dati. Per dirla diversamente, come proponi di trasformare un 'Elenco' nell'albero nella foto? – Jon