Comment ajouter des doubles de clés dans le Dictionnaire
J'ai quelques lignes à partir de fichiers texte que je veux ajouter dans le Dictionnaire.Je suis en utilisant le Dictionnaire pour la première fois.Tout en ajoutant des lignes de départ c'était Ok mais du coup je me suis d'erreur:
Un élément avec la même clé a déjà été ajouté
Ici dans mon code il y a des doubles de clés qui je ne peux pas changer.Voici mon code en c#
Dictionary<string, string> previousLines = new Dictionary<string, string> { };
previousLines.Add(dialedno, line);
Ici dialedno est la clé et la ligne est le fichier texte ligne.
Voici le code dont je suis la récupération de la ligne de base sur la touche.
string tansferOrginExt = previousLines[dialedno];
Donc, ma préoccupation est de savoir comment permettre d'ajouter des doubles de clés dans le Dictionnaire, si possible, et si non, comment puis-je obtenir des fonctionnalités similaires.
- Comme d'autres l'ont dit, il n'est pas possible d'ajouter une clé en double dans le dictionnaire. Comment à propos de l'utilisation du Dictionnaire<string, List<string>>? Vérifiez ensuite si la clé existe pas, ajoutez-la dans la liste valeur de cette clé et si la clé n'existe pas, alors de créer une nouvelle entrée dans le dictionnaire.
- comment faire pour vérifier les doubles des clés dans le Dictionnaire?
- Double Possible de des doubles de clés en .NET dictionnaires?
Vous devez vous connecter pour publier un commentaire.
Il n'est pas possible. Toutes les clés doivent être uniques. Comme
Dictionnaire<TKey, TValue>
mis en œuvre:Solutions possibles - vous pouvez garder une collection de chaînes de valeur (c'est à dire utiliser
Dictionary<string, List<string>>
), ou (mieux), vous pouvez utiliserRecherche<TKey, TValue>
au lieu de dictionnaire.Vous pouvez vérifier si la clé existe avec
previousLines.ContainsKey(dialedno)
mais si vous avez toujours envie de tenir la dernière ligne, puis il suffit de remplacer tout ce dictionnaire a pour la clé, ou ajouter la nouvelle clé si elle n'est pas dans le dictionnaire:Add
,Remove
,Clear
Contains
, ouCopyTo
méthodes. OuCount
de la propriété.Nous pouvons Utiliser une Liste de Valeur de la Clé de Paire
Ce n'est pas possible d'ajouter des éléments en double dans un Dictionnaire - une alternative est d'utiliser le Recherche classe.
Énumérable.ToLookup Méthode
ICollection
Exemple:
Si votre question est de savoir si vous pouvez ajouter la touche même deux fois, la réponse est Non.
Cependant, si vous souhaitez simplement itérer sur l'élément, puis d'augmenter le nombre de la valeur de la Clé particulier, vous pouvez le faire à l'aide de "TryAdd" la méthode.
La même chose que nous essayons de réaliser avec si d'autre, peut être réalisé avec cette méthode.`
https://docs.microsoft.com/en-us/dotnet/api/system.collections.concurrent.concurrentdictionary-2.tryadd?view=netframework-4.7.2