Comme déjà dit, ce que vous cherchez à faire n'est pas possible. Cependant, une solution alternative consisterait simplement à maintenir une liste d'éléments marqués pour suppression, puis à supprimer ces mots postérieurs. J'opterais aussi pour un foreach
plutôt qu'une boucle while
, moins de code par ex.
var removeList = new List<decimal>();
foreach (var item in myDictionary)
{
// have a condition which indicates which items are to be removed
if (item.Key > 1)
{
removeList.Add(item.Key);
}
}
Ou si vous essayez simplement de récupérer des éléments à supprimer, utilisez LINQ
var removeList = myDictionary.Where(pair => pair.Key > 1).Select(k => k.Key).ToList();
Ensuite, il suffit de les retirer de la liste.
// remove from the main collection
foreach (var key in removeList)
{
myDictionary.Remove(key);
}
Non, vous devriez obtenir un InvalidOperationExcpetion – bitbonk
Vous devez également renommer votre variable 'enum' être' @ enum' comme 'enum' est un mot réservé . – James
Oui, il est parfaitement sûr, car il ne fonctionnera pas :) S'il vous plaît envisager d'interroger votre collection pour acquérir des éléments à supprimer (par exemple LINQ) –