Le code suivant me donne une erreur: L'erreur qu'elle donne est la suivante: p> 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? P> p>
6 Réponses :
Il devrait être: Le dictionnaire ne contient pas d'autres dictionnaires, il contient des paires de clés et de valeurs. p> p>
Les articles stockés ne sont pas un dictionnaire, mais un keyvaluepair:
Vous devez utiliser:
Dictionary<string, DirectoryInfo> myDirectoryList = GetDirectoryList();
foreach (KeyValuePair<string, DirectoryInfo> itemPair in myDirectoryList) {
//do something
}
Implements 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 C'est aussi pourquoi l'une des méthodes d'extension iEnumérables sera toujours Travaillez avec un objet KeyValuePair aussi: P> Dictionnaire iEnumerable keyvaluepair // Get all key/value pairs where the key starts with C:\
myDirectoryList.Where(kvp => kvp.Key.StartsWith("C:\\"));
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 plutôt que le type de dictonaire.
Tellement correct: p> foreach (KeyValuePair<string, DirectoryInfo> eachItem in myDirectoryList)
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)