Comment insérer un élément dans une paire clé/valeur de l'objet?
Ok...voici une balle de question...
J'ai juste besoin d'être en mesure d'insérer une paire clé/valeur dans un objet à une position spécifique. Je suis actuellement en train de travailler avec une table de hachage qui, bien sûr, ne permet pas de cette fonctionnalité. Quelle serait la meilleure approche?
Mise à JOUR: Aussi, je n'ai besoin de la capacité de recherche par la touche.
Par exemple...simpliste, et pseudocoded mais devrait donner le point
//existing Hashtable
myHashtable.Add("somekey1", "somevalue1");
myHashtable.Add("somekey2", "somevalue2");
myHashtable.Add("somekey3", "somevalue3");
//Some other object that will allow me to insert a new key/value pair.
//Assume that this object has been populated with the above key/value pairs.
oSomeObject.Insert("newfirstkey","newfirstvalue");
Merci d'avance.
InformationsquelleAutor Clay | 2010-04-30
Vous devez vous connecter pour publier un commentaire.
L'aide de ce code:
de la sortie attendue devrait être:
La même volonté de travailler avec un KeyValuePair ou tout autre type que vous souhaitez utiliser.
Edit -
À la recherche par la touche, vous pouvez effectuer les opérations suivantes:
Vous pouvez le faire avec un KeyValuePair en procédant comme suit:
Dernière édition -
Fait la réponse spécifique à KeyValuePair plutôt que chaîne de caractères.
List<KeyValuePair<string, string>>
est O(n), au lieu de O(1). En d'autres termes, pour les grandes tailles, le rendement sera moins bonne à la recherche d'un élément clé lors de l'utilisation de la liste.Peut-être le OrderedDictonary vous aider.
Faire, vous devez chercher des objets par la clé? Si pas, envisager d'utiliser
List<Tuple<string, string>>
ouList<KeyValuePair<string, string>>
si vous ne l'utilisez pas .NET 4.Vous pouvez utiliser un OrderedDictionary, mais je voudrais vous demander pourquoi vous voulez le faire.
Utiliser une liste chaînée. Il a été conçu pour précisément cette situation.
Si vous avez encore besoin du dictionnaire O(1) des recherches, utiliser à la fois un dictionnaire et d'une liste liée.
Tables de hachage ne sont pas intrinsèquement triés, votre meilleur pari est d'utiliser une autre structure comme un SortedList ou une liste de tableaux
Je voudrais utiliser le
Dictionnaire<TKey, TValue>
(à condition que chaque clé est unique).EDIT: Désolé, réalisé que vous vouliez ajouter à une position spécifique. Mon mauvais. Vous pouvez utiliser un SortedDictionary mais cela ne vous laisseront pas de les insérer.
Insert()
....