C#在X个项目之后中断foreach循环

时间:2009-08-11 22:36:17

标签: c# foreach

在我的foreach循环中,我想在50个项目后停止,当我到达第50个项目时,你将如何突破这个foreach循环?

由于

foreach (ListViewItem lvi in listView.Items)

6 个答案:

答案 0 :(得分:115)

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
}

或者只使用常规for循环(由@sgriffinusa和@Eric J建议。)

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

答案 1 :(得分:24)

为什么不使用常规for循环?

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

更新以解决Ruben和Pragmatrix指出的错误。

答案 2 :(得分:6)

或者只使用常规for循环而不是foreach。 for循环稍微快一点(尽管除非是非常重要的时间代码,否则你不会注意到差异)。

答案 3 :(得分:3)

这应该有用。

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

答案 4 :(得分:2)

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

答案 5 :(得分:0)

只需使用中断,就像那样:

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