robertosalemi Inserito: 9 settembre 2022 Segnala Share Inserito: 9 settembre 2022 Ciao, ho un classe che simula un tree, così composto: [code] MainNode - SubNode Level 1 - SubNode Level 2 -SubNode Level 3 - Item 1 - Item 2 - Item 3 [/code] Ho la necessità di ordinare solo i children del livello 3, immagino che devo ciclare ricorsivamente l'albero fino a quel livello e poi ordinarli, ma non ne sto venendo a capo. Qualche suggerimento? Grazie. Link al commento Condividi su altri siti More sharing options...
Ggiovanni Inserita: 2 febbraio 2023 Segnala Share Inserita: 2 febbraio 2023 Ciao Roberto, non so se sei ancora alla ricerca di una soluzione, ma voglio ugualmente provare a risolvere il problema. Tutto ovviamente dipende dall'implementazione di albero che stai utilizzando. Ad esempio, supponiamo che la struttura sia questa: public class Nodo { IEnumerable<Items> ElementiDelNodo {get; set;} IEnumerable<Nodo> NodiSottostanti{ get; set;} } (quindi la radice è un nodo che contiene altri nodi che a loro volta contengono altri nodi e così via..) Potresti creare una funzione che percorre l'albero conservando in un parametro il livello, in questo modo: void OrdinaNodo(Nodo nodo, int livello) { if(livello == 3){ // Ordina gli elementi del nodo } else { livello++; foreach(var n in nodo.NodiSottostanti) { OrdinaNodo(n, livello); } } } Quindi, per avviare il processo di ordinamento: var radice = new Nodo(); OrdinaNodo(radice, 1); Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora