В моем цикле foreach я хотел бы остановиться после 50 пунктов, как бы вы вырвались из этого цикла foreach, когда я достиг 50-го элемента?
Спасибо
foreach (ListViewItem lvi in listView.Items)
Ответ 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;
}