je me rends compte que vous ne pouvez pas itérer sur un dictionnaire en C# et de modifier le sous-jacent Dictionary comme dans l'exemple suivant:bouclez Dictionnaire en C#
Dictionary<Resource, double> totalCost = new Dictionary<Resource, double>();
// Populate the Dictionary in here - (not showing code).
foreach (Resource resource in totalCost.Keys)
{
totalCost[resource] = 5;
}
Une façon que je vois de résoudre ce problème est de faire une liste soutenue par les clés de dictionnaire, comme celui-ci:
Dictionary<Resource, double> totalCost = new Dictionary<Resource, double>();
// Populate the Dictionary in here - (not showing code).
foreach (Resource resource in new List(totalCost.Keys))
{
totalCost[resource] = 5;
}
Parce que je ne suis pas modifier les clés elles-mêmes, est-il une raison que cela ne devrait pas être fait ou qu'il est mauvais de choisir cela comme une solution. (Je réalise que si je modifiais ces touches, cela pourrait causer beaucoup de problèmes.)
Merci.
Modifier: J'ai corrigé mon exemple de code. Désolé pour ça.
Le premier morceau de code ne fonctionne-t-il pas? –
Vous avez raison. Désolé à ce sujet - l'a corrigé pour montrer le problème que j'essayais de décrire. – JasCav