2010-06-29 13 views
5

Ho qualche problema a spiegare la domanda in una singola riga per il titolo, ma spero che questa descrizione ti fornisca abbastanza informazioni per comprendere appieno la mia domanda:Qual è il modo più semplice per colmare le lacune in un elenco di numeri?

Ho alcune variabili in un documento di Word. Ogni variabile ha un Value che è un numero (a partire da 0 fino al numero di variabili). A SortedDictionary viene compilato con queste variabili, ma è possibile che una variabile sia stata eliminata prima, quindi c'è un "gap" per così dire. Esempio:

5 variabili vengono aggiunti ad un SortedDictionary<int, string> in cui il primo numero è il int e la stringa corrispondente alla string parte del SortedDictionary.

0 "name 1" 
1 "name 2" 
2 "name 3" 

Ora una delle variabili viene eliminato in modo che il dizionario è compilato in questo modo:

0 "name 1" 
2 "name 3" 

Alla fine tutte le voci SortedDictionary vengono aggiunti in una casella di riepilogo e sto usando il primo numero come l'indice per l'inserimento. Si può immaginare che genererà un errore quando tenta di aggiungere un articolo a index 2 quando index 1 non esiste, ma lo è index 0.

Il modo in cui voglio risolverlo è quando l'utente chiama il metodo DeleteVariable() e una variabile viene rimossa, tutte le variabili dovrebbero aggiornare automaticamente il loro valore (numero dà un errore perché tutti i numeri corrispondono (senza spazi vuoti).

Si prega di avvisare.

risposta

7

Vorrei utilizzare una lista invece del dizionario ordinato. Il tuo numero sarà l'indice nella lista. In questo modo se rimuovi un elemento dalla lista (usando probabilmente list.RemoveAt (index)), tutti gli altri indici saranno effettivamente "aggiornati" nel modo desiderato.

+0

Sì, anche il mio pensiero (ma ho sbagliato nella mia risposta, quindi voterò per il tuo). –

+0

Questo è perfetto. Quindi posso solo regolare tutti i valori delle variabili in base agli indici della lista. Brillante, grazie! – Fusyion

Problemi correlati