J'ai ce code ... semble agréable et élégant, mais apparemment le cadre ne l'aime pas quand je mess avec une collection tout en réitérant à travers elle:Suppression d'une entité d'un EntitySet pendant Iteration
foreach (KitGroup kg in ProductToTransfer.KitGroups)
{
// Remove kit groups that have been excluded by the user
if (inKitGroupExclusions != null && inKitGroupExclusions.Contains(kg.KitGroupID))
ProductToTransfer.KitGroups.Remove(kg);
else
{
// Loop through the kit items and do other stuff
//...
}
}
l'erreur qu'il jette quand il itère au 2ème objet de la collection est: « EntitySet a été modifié lors de l'énumération »
Je sais que je pourrais créer une nouvelle collection d'objets KITGroup (ou même simplement ID) que je veux pour supprimer, puis une autre boucle pour ensuite passer à travers ceux-ci, et les retirer de la collection, mais cela semble juste inutile xtra code ... quelqu'un peut-il suggérer un moyen plus élégant de réaliser la même chose?
Wow génial ... tout ce que je devais faire était de le convertir en liste. Donc, c'est juste parce que c'était un EntitySet que je ne pouvais pas supprimer les éléments de la collection dans une énumération ... pourquoi est-ce? Merci beaucoup, je savais qu'il y aurait une solution facile à ce probleM :) – Jeeby
@Gregorius Ce n'est pas le fait que c'est un 'EntitySet', c'est le fait que vous supprimez de l'objet que vous êtes en train d'énumérer. L'appel de 'ToList' instancie un nouvel objet' List' à énumérer pendant que vous supprimez le 'EntitySet' d'origine. Vous devez utiliser le même type de procédure pour supprimer des éléments d'une liste ou d'une autre collection. – Jake
ahhh ... c'est tout à fait logique. merci Jake, très apprécié – Jeeby