2010-06-29 6 views
5

J'ai quelques difficultés à expliquer la question en une seule ligne pour le titre, mais j'espère que cette description vous donnera assez de perspicacité pour bien comprendre ma question:Quelle est la manière la plus simple de remplir les espaces dans une liste de nombres?

J'ai quelques variables dans un document Word. Chaque variable a un Value qui est un nombre (commençant par 0 jusqu'au nombre de variables). Un SortedDictionary est rempli avec ces variables, mais il est possible qu'une variable ait déjà été supprimée, donc il y a un "gap" pour ainsi dire. Exemple:

5 Les variables sont ajoutées à SortedDictionary<int, string> où le premier nombre est le int et la chaîne correspond à la partie string du SortedDictionary.

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

maintenant l'une des variables est supprimée de sorte que le dictionnaire est rempli comme ceci:

0 "name 1" 
2 "name 3" 

Finalement, toutes les entrées SortedDictionary sont ajoutés dans une zone de liste et je suis en utilisant le premier numéro comme l'index pour l'insertion. Vous pouvez imaginer qu'il va donner une erreur quand il essaie d'ajouter un élément dans index 2 quand index 1 n'existe pas, mais fait. La façon dont je veux le résoudre est quand l'utilisateur appelle la méthode DeleteVariable() et qu'une variable est enlevée, toutes les variables devraient automatiquement mettre à jour leur valeur (nombre) ainsi quand SortedDictionary obtient toutes les variables la boîte de liste n'est plus donne une erreur parce que tous les chiffres correspondent (pas de trous).

Veuillez nous aviser.

Répondre

7

J'utiliserais une liste à la place du dictionnaire trié. Votre numéro sera l'index dans la liste. De cette façon, si vous supprimez un élément de la liste (en utilisant probablement list.RemoveAt (index)), tous les autres index seront effectivement "mis à jour" comme vous le souhaitiez.

+0

Oui, ma pensée aussi (mais j'ai fait une erreur dans ma réponse alors je voterai pour la vôtre à la place). –

+0

C'est parfait. Ensuite, je peux juste ajuster toutes les valeurs des variables en fonction des indices de la liste. Génial, merci! – Fusyion

Questions connexes