C#在X个项目之后打破foreach循环

在我的foreach循环中,我想在50个物品之后停下来,当我到达第50个物品时,你将如何摆脱这个foreach循环?

谢谢

foreach (ListViewItem lvi in listView.Items) 
 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.所build议的)

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

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

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

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

或者只是使用常规的循环而不是foreach。 一个for循环稍微快一点(尽pipe除了时间关键代码外你不会注意到这个差别)。

这应该工作。

 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; } 

只要使用rest ,就像这样:

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