2015-04-08 1 views
-1

Dans un dictionnaire, je souhaite ajouter une liste de nombres pour une clé donnée.Mais je suis incapable de le faire.Ajout d'un nouvel élément dans une liste à l'intérieur d'un dictionnaire

for(int i = 0 ; i < size ; i++){ 
      string input = Console.ReadLine(); 
      string[] inputList = input.Split(' '); 
      count[Convert.ToInt32(inputList[0])]++; 
      if(!map.ContainsKey(Convert.ToInt32(inputList[0]))){ 
       map.Add(Convert.ToInt32(inputList[0]),new List<string>()); 
       map_index.Add(Convert.ToInt32(inputList[0]),new List<int>()); 
      } 
+0

Qu'est-ce que vous obtenez exactement? erreur, exception ou résultat inattendu? – Coder1409

+0

Avez-vous vérifié pour voir si map_index a la clé ou pas? – Minh

+4

Cela n'a aucun sens - ajoutez plus de détails. Qu'est-ce que 'map'? Qu'est-ce que 'map_index'? Qu'est-ce que 'count'? etc ... – smremde

Répondre

3

La question n'est pas très claire. Ma compréhension de votre problème est la suivante: Vous avez un dictionnaire, une valeur du dictionnaire est une liste, et vous avez du mal à ajouter un élément à cette liste. Puisque vous n'avez pas expliqué votre notation J'utilise plusieurs noms généraux, juste pour vous donner une idée de ce qui doit être fait:

Dictionary<int, List<string>> myDict = new Dictionary<int, List<string>>(); 
if (myDict.ContainsKey(myKey)) 
{ 
    myDict[myKey].Add(myVal); 
} 
else 
{ 
    myDict[myKey] = new List<string> { myVal }; 
} 

Si la clé est pas dans le dictionnaire, vous créez une entrée en même temps que la liste et initialise la liste avec la nouvelle valeur. Si la clé est là, vous n'avez qu'à accéder à la liste (en utilisant myDict[myKey]) et ajouter la nouvelle valeur à la liste. Puisque la liste est toujours créée pour une nouvelle clé, vous n'avez pas à vous inquiéter qu'elle ne soit pas initialisée lors de l'ajout d'une valeur pour une clé existante.

+0

Merci mon pote, ça m'a beaucoup aidé. Enfin capable de le résoudre. À votre santé. :) –