Подтвердить что ты не робот

С# Вырыв из цикла foreach после X числа элементов

В моем цикле foreach я хотел бы остановиться после 50 пунктов, как бы вы вырвались из этого цикла foreach, когда я достиг 50-го элемента?

Спасибо

foreach (ListViewItem lvi in listView.Items)
4b9b3361

Ответ 1

int processed = 0;
foreach(ListViewItem lvi in listView.Items)
{
   //do stuff
   if (++processed == 50) break;
}

или используйте LINQ

foreach( ListViewItem lvi in listView.Items.Cast<ListViewItem>().Take(50))
{
    //do stuff
}

или просто используйте регулярный цикл (как предложено @sgriffinusa и @Eric J.)

for(int i = 0; i < 50 && i < listView.Items.Count; i++)
{
    ListViewItem lvi = listView.Items[i];
}

Ответ 2

Почему бы просто не использовать регулярный цикл?

for(int i = 0; i < 50 && i < listView.Items.Count; i++)
{
    ListViewItem lvi = listView.Items[i];
}

Обновлен для устранения ошибки, отмеченной Рубеном и Прагматрией.

Ответ 3

Или просто используйте обычный цикл for вместо foreach. Цикл for немного быстрее (хотя вы не заметите разницу, за исключением очень критического кода времени).

Ответ 4

Это должно работать.

int i = 1;
foreach (ListViewItem lvi in listView.Items) {
    ...
    if(++i == 50) break;
}

Ответ 5

int count = 0;
foreach (ListViewItem lvi in listView.Items)
{
    if(++count > 50) break;
}

Ответ 6

Просто используйте break, например:

int cont = 0;
foreach (ListViewItem lvi in listView.Items) {
   if(cont==50) { //if listViewItem reach 50 break out.
      break; 
   }
   cont++;   //increment cont.
}