Dans ma boucle Foreach, je voudrais m'arrêter après 50 éléments. Comment sortirais-tu de cette boucle foreach lorsque j'atteindrais le 50e élément?
Merci
foreach (ListViewItem lvi in listView.Items)
int processed = 0;
foreach(ListViewItem lvi in listView.Items)
{
//do stuff
if (++processed == 50) break;
}
ou utilisez LINQ
foreach( ListViewItem lvi in listView.Items.Cast<ListViewItem>().Take(50))
{
//do stuff
}
ou utilisez simplement une boucle for régulière (comme suggéré par @sgriffinusa et @Eric J.)
for(int i = 0; i < 50 && i < listView.Items.Count; i++)
{
ListViewItem lvi = listView.Items[i];
}
Pourquoi ne pas simplement utiliser une boucle for normale?
for(int i = 0; i < 50 && i < listView.Items.Count; i++)
{
ListViewItem lvi = listView.Items[i];
}
Mise à jour pour résoudre le bogue signalé par Ruben et Pragmatrix.
Ou utilisez simplement une boucle for normale au lieu de foreach. Une boucle for est légèrement plus rapide (bien que vous ne remarquiez pas la différence, sauf dans le code très critique dans le temps).
Cela devrait marcher.
int i = 1;
foreach (ListViewItem lvi in listView.Items) {
...
if(++i == 50) break;
}
int count = 0;
foreach (ListViewItem lvi in listView.Items)
{
if(++count > 50) break;
}
Utilisez juste break , comme ça:
int cont = 0;
foreach (ListViewItem lvi in listView.Items) {
if(cont==50) { //if listViewItem reach 50 break out.
break;
}
cont++; //increment cont.
}