Comment est-ce Dictionnaire<TKey, TValue> à l'exception possible?

Le suivant trace de la pile:

MESSAGE: Value cannot be null.Parameter name: key  
SOURCE: mscorlib  
TARGETSITE: Void ThrowArgumentNullException(System.ExceptionArgument)  
STACKTRACE:  
   at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)  
   at System.Collections.Generic.Dictionary'2.FindEntry(TKey key)  
   at System.Collections.Generic.Dictionary'2.get_Item(TKey key)  
   at MyCompany.MAF.Agent.ServiceContracts.ConvertUtils.Convert(Dictionary'2 from) in D:\Development\MAF\Agent\MyCompany.MAF.Agent\ServiceContracts\ConvertUtils.cs:line 11

J'en conclus que, en quelque sorte, le bloc de code suivant a récupéré une valeur null à partir de l'entrée de Dictionnaire Clés de la collection. Cependant, le dictionnaire de saisie est une instance de Dictionary<string, string>. La mise en œuvre de Dictionary<string, string> fait que la condition impossible. Lors de l'ajout d'un élément avec une clé null, une exception est levée.

internal static KeyValuePair<string, string>[] Convert(IDictionary<string, string> from)
{
    List<KeyValuePair<string, string>> ret = new List<KeyValuePair<string, string>>();
    foreach (string key in from.Keys)
        ret.Add(new KeyValuePair<string, string>(key, from[key]));
    return ret.ToArray();
}
  • Depuis il n'a pas vraiment répondre à votre question (ma meilleure supposition est que ce fil), mais votre boucle qui se répète d'.ToArray() permet d'obtenir le même résultat