Le titre est de base assez, pourquoi ne puis-je pas:
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.AddRange(MethodThatReturnAnotherDic());
Le titre est de base assez, pourquoi ne puis-je pas:
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.AddRange(MethodThatReturnAnotherDic());
La gamme n'a pas vraiment de sens pour un conteneur associatif est-il? Je pense que le Dictionnaire stocke les valeurs dans un triées de la mode, mais ce n'est pas l'apanage de tables de hachage.
De toute façon, avec le C#, vous pouvez écrire votre propre méthode d'extension de fusionner les dictionnaires.
Ma conjecture est que le manque de bon de sortie à l'utilisateur que pour ce qui s'est passé. Comme vous ne pouvez pas avoir à répéter les clés dans un des dictionnaires, comment voulez-vous gérer la fusion de deux dictionnaire où certaines touches se croisent? Bien sûr, vous pourriez dire: "je n'aime pas", mais c'est la rupture de la convention de renvoyer false / lance une exception pour la répétition des touches.
Vous pouvez faire cela
Dictionary<string, string> dic = new Dictionary<string, string>();
MethodThatReturnAnotherDic(dic);
public void MethodThatReturnAnotherDic(Dictionary<string, string> dic)
{
dic.Add(.., ..);
}
ou utiliser une Liste pour addrange et/ou à l'aide du modèle ci-dessus.
List<KeyValuePair<string, string>>
Si vous êtes de traiter w/ un nouveau Dictionnaire (et vous n'avez pas les lignes existantes à perdre), vous pouvez toujours utiliser ToDictionary() à partir d'une autre liste d'objets.
Donc, dans votre cas, il vous faudrait faire quelque chose comme ceci:
Dictionary<string, string> dic = new Dictionary<string, string>();
dic = SomeList.ToDictionary(x => x.Attribute1, x => x.Attribute2);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.