IComparer per ordinare valori (anche nulli) in una lista

lunedì 15 marzo 2010 - 23.40

paquito_ita Profilo | Senior Member

Ciao,

ho una lista di nodi che voglio ordinare in base alla data. Utilizzo l'interfaccia IComparer e il metodo Compare per questo e tutto funziona.
La difficoltà risiede nel fatto che alcuni nodi possono non avere data. In tal caso la data verrebbe reperita successivamente calcolandola come "media" del nodo precedente e successivo. Quindi l'ordine è rilevante: non posso semplicemente spostare in coda alla lista i nodi senza data, ma la loro posizione dovrebbe rimanere inalterata, mentre i nodi con data dovrebbero essere ordinati fra loro
Con un esempio:
Nodo 1: 10/02 Nodo 2: - Nodo 3: 15/03 Nodo 4: 24/02 Dovrebbe generare: Nodo 1: 10/02 Nodo 2: - Nodo 4: 24/02 Nodo 3: 15/03
Il Nodo 2 mantiene la posizione e il nodo 4 viene spostato prima del nodo 3.
Durante il confronto, nel caso una delle due date sia nulla, ritorno "0" nel metodo Compare. Vorrei insomma specificare che se una data e' nulla "mantieni l'ordine attuale". Purtroppo pero' questa indicazione non sembra corretta, in quanto ottengo un ordnamento non come quello previsto. Qui il codice:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Sapreste indicarmi come modificare le condizioni in modo opportuno o eventualmente una soluzione alternativa in grado di ordinare i nodi come desiderato?
Grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5