7
votes

Dictionnaire générique - Erreur de conversion

Le code suivant me donne une erreur: xxx

L'erreur qu'elle donne est la suivante: xxx

Ma question est la suivante: Pourquoi essaie-t-il d'exécuter cette conversion? Puis-je pas utiliser une boucle de forach sur ce type d'objet?


0 commentaires

6 Réponses :


16
votes

Il devrait être: xxx

Le dictionnaire ne contient pas d'autres dictionnaires, il contient des paires de clés et de valeurs.


0 commentaires

4
votes

Les articles stockés ne sont pas un dictionnaire, mais un keyvaluepair: xxx


0 commentaires

4
votes

Vous devez utiliser:

Dictionary<string, DirectoryInfo> myDirectoryList = GetDirectoryList();
foreach (KeyValuePair<string, DirectoryInfo> itemPair in myDirectoryList) {
    //do something
}


0 commentaires

6
votes

Dictionnaire code>

Implements P>

iEnumerable > code> p>

P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> Ce qui signifie que la boucle de forach est en boucle sur keyvaluepair code> objets: p> xxx pré>

C'est aussi pourquoi l'une des méthodes d'extension iEnumérables sera toujours Travaillez avec un objet KeyValuePair aussi: P>

// Get all key/value pairs where the key starts with C:\
myDirectoryList.Where(kvp => kvp.Key.StartsWith("C:\\"));


0 commentaires

1
votes

Par foreach Vous iTERE chaque élément de dictionnaire, alors vous devez définir le type de données de laquelle la tenue dictonaire est xxx pré>

plutôt que le type de dictonaire. Tellement correct: p>

foreach (KeyValuePair<string, DirectoryInfo> eachItem in myDirectoryList)   


0 commentaires

4
votes

Je pense que beaucoup de personnes ci-dessus ont répondu à la question de savoir pourquoi vous obtenez l'erreur, c'est-à-dire que le dictionnaire stocke KeyValuePairs et ne stocke pas les dictionnaires. Afin d'arrêter de petites erreurs comme celle que vous avez, je suggérerais d'utiliser une nouvelle syntaxe dans votre développement.

foreach (var eachItem in myDirectoryList)


0 commentaires