Qual è il modo più semplice per colmare le lacune in un elenco di numeri?
-
01-10-2019 - |
Domanda
Sto avendo qualche difficoltà a spiegare la questione in una sola linea per il titolo, ma spero che questa descrizione vi fornirà una visione abbastanza per comprendere appieno la mia domanda:
Ho un paio di variabili in un documento Word. Ogni variabile ha un Value
che è un numero (a partire da 0 fino al numero di variabili). Un SortedDictionary
viene riempita con queste variabili, ma è possibile che una variabile è stato eliminato 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
ei corrisponde stringa alla parte string
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 darà un errore quando si tenta di aggiungere un elemento in index 2
quando index 1
non esiste, ma index 0
fa.
Il modo in cui voglio risolverlo è quando l'utente chiama il metodo DeleteVariable()
e una variabile è portato via, tutte le variabili devono aggiornare automaticamente il loro valore (numero) in modo che quando il SortedDictionary ottiene tutte le variabili nella casella di riepilogo non dà più un errore perché tutti i numeri corrispondono (senza spazi).
Si prega di avvisare.
Soluzione
I userebbe un elenco al posto del dizionario ordinato. Il tuo numero sarà l'indice nella lista. In questo modo se si rimuove un elemento dalla lista (usando probabilmente list.RemoveAt (indice)), tutti gli altri indici saranno effettivamente "aggiornati" in un modo che si voleva.