J'ai un dropdownlist à l'intérieur d'un gridview, qui est chargé à partir d'une source de données lors de la gridview charges. Quelqu'un pourrait-il svp me montrer comment je aller sur la boucle de la dropdownlist et l'élimination de certains éléments de la liste basée sur une condition if.
source d'informationauteur
Pas besoin de boucle les éléments, il suffit de trouver l'objet et l'enlever :
Ou si vous connaissez l'index de l'élément à supprimer, utilisez RemoveAt méthode :
Mais si vous voulez boucle de toute façon, ici, c'est la boucle :
Vous ne pouvez pas utiliser une boucle foreach pour supprimer des éléments, une fois que vous avez supprimé un élément, la collection est modifié, et la boucle déclenche une exception.
Si vous devez parcourir la collection de supprimer plusieurs articles, la meilleure solution consiste à effectuer une boucle vers l'arrière à travers la collection. Mon C# est assez rouillé, donc la suite est en VB. Doit être facile à convertir.
Vous ne pouvez pas utiliser une boucle for-each parce que vous ne pouvez pas modifier la collection tout en utilisant l'objet énumérateur. La meilleure façon de le faire est de compter à rebours, comme indiqué par @Jason. Ou l'utilisation d'une boucle for comme ceci:
Il suffit de noter que, après la suppression de la
ListItem
leDropDownList
nombre d'éléments vont changer. De sorte que vous aurez besoin pour décrémenter le compteur variablei
sinon vous risquez de ne pas évaluer tous les éléments.Pourquoi ne pouvez-vous pas utiliser
for each item in mycollection.ToList()
De cette façon, vous pouvez apporter des modifications au cours de l'itération par le biais de votre liste, car la collection est converti à une copie d'une liste et non le réel lui-même la liste.