J'ai une collection String qui est rempli avec les ID comme si ->Index actuel pour l'enlèvement dans la chaîne Collection
12345
23456
34567
et ainsi de suite. Ce que je dois faire est à la demande de l'utilisateur, et quand certains paramètres sont rencontrés, parcourez cette liste, en commençant par le haut, et effectuez une méthode() en utilisant cet ID. En cas de succès, je voudrais le retirer de la liste et passer à autre chose.
Je n'ai pas, de manière embarrassante, travaillé auparavant avec une collection de cette manière. Quelqu'un peut me diriger dans la bonne direction. Les exemples semblent tous être de la variété Console.Writeline("");
.
Ma base, ignorant, tentative ressemble à ceci ->
var driUps = Settings.Default.DRIUpdates.GetEnumerator();
while (driUps.MoveNext())
{
var wasSuccessfull = PerformDRIUpdate(driUps.Current);
if (wasSuccessfull)
{
driUps.Current.Remove(driUps.Current.IndexOf(driUps.Current));
}
}
La partie que je suis plus préoccupé par le Remove();
est-il pas une meilleure façon d'obtenir l'indice actuel? Tous les conseils, astuces, critiques, pointeurs, etc ... bienvenue. Merci!
Cela évite également le problème d'invalider l'énumérateur lors du retrait d'un élément de la collection. +1 – TreDubZedd
+1 pour fournir une solution qui n'utilise pas d'énumérateur, pour le problème "collection modifiée lors de l'énumération". Cela dépend de la taille de la collection, mais je fais généralement des boucles en arrière pour des raisons de performance afin d'éviter la reconstruction de la collection interne. –
@chibacity: En faisant une boucle arrière, vous inverseriez la condition 'while', essentiellement? Et le 'idx = strCol.Count'? –