Comment sauter une position spécifique dans une boucle for each in c sharp?
List<string> liste = new List<String>
{
"A","B","C","D"
};
foreach (var item in liste)
{
System.Diagnostics.Debug.WriteLine(item.ToString());
}
for (int i = 0; i < liste.Count; i++)
{
if (i == 0)
continue;
System.Diagnostics.Debug.WriteLine(liste[i].ToString());
}
Comment ignorer une position spécifique dans une boucle foreach? Je ne veux pas d'évaluer toutes les valeurs, mais, sautez simplement la position de x.
Il a une position spécifique. On pourrait choisir la position 0 ou peut-être la position 7.
Ce qui est un problème avec votre exemple? if (i==0) continuer paraît droite.
Il n'y a pas de problème, mais j'ai un tas de boucles foreach et je me demandais si il existe une commande pour faire comme dans la normale pour la boucle. Imaginez que vous avez sur toutes vos Listes à la position 4 de la valeur que vous souhaitez ignorer
Il n'y a pas de problème, mais j'ai un tas de boucles foreach et je me demandais si il existe une commande pour faire comme dans la normale pour la boucle. Imaginez que vous avez sur toutes vos Listes à la position 4 de la valeur que vous souhaitez ignorer
OriginalL'auteur Gero | 2011-10-29
Vous devez vous connecter pour publier un commentaire.
Il est très facile de sauter le premier élément dans la liste:
Si vous voulez sauter tout autre élément à l'index
n
, vous pouvez écrire ceci:Dans cet exemple, j'utilise une expression lambda qui prend deux arguments:
a
etb
. Argumenta
est l'élément lui-même, tandis que l'argumentb
est l'index de l'élément.Les pages pertinentes sur MSDN qui décrivent ces méthodes d'extension sont:
Vous pouvez même écrire votre propre méthode d'extension qui vous permet de passer d'un élément dans une liste:
Cela vous permettra d'écrire quelque chose de ce genre à sauter d'un élément:
+1 Bien mieux que ma réponse. Je ne savais pas qu'on pouvait le faire avec
Where
.J'ai modifié ma réponse à couvrir le cas générique.
OriginalL'auteur
Un
foreach
boucle itère sur une collection qui met en œuvreIEnumerable
. L'agent recenseur expose l'objet et une méthode pour passer à l'élément suivant - il n'a pas de concept d'un index.Vous pouvez toujours le faire:
Mais cela semble inutilement artificiel. Si vous avez besoin d'un indice, d'aller avec un
for
boucle.L'autre option est de supprimer l'indésirable élément de la
List
avant l'itération:OriginalL'auteur
J'ai l'amour de la liste .ForEach, voici mon point de vue à l'aide de @Eliam .SkipAt(n) et .ForEach:
OriginalL'auteur
Vous devez essayer d'utiliser la version améliorée de la méthode d'extension qui permet de filtrer sur l'article et l'index.
Vérifier la référence.
http://msdn.microsoft.com/en-us/library/bb549418.aspx
Cela vous donnera le résultat suivant.
OriginalL'auteur
De sauter d'une position à l'intérieur de la boucle foreach, une option est que vous pouvez passer de l'action à l'intérieur de la boucle foreach à l'aide d'une instruction si, comme
Mais je suis en attente de meilleures solutions
Pourquoi est-ce nécessaire?
OriginalL'auteur