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