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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top