在我的foreach循环中,我想在50个项后停止,当我到达第50个项时,如何跳出这个foreach循环?
谢谢
foreach (ListViewItem lvi in listView.Items)
在我的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
}
或者只需使用普通的for循环(如@sgriffinusa和@Eric J.建议的那样)
for(int i = 0; i < 50 && i < listView.Items.Count; i++)
{
ListViewItem lvi = listView.Items[i];
}
为什么不使用普通的for循环?
for(int i = 0; i < 50 && i < listView.Items.Count; i++)
{
ListViewItem lvi = listView.Items[i];
}
根据Ruben和Pragmatrix指出的bug进行了更新。
或者使用普通的for循环代替foreach。for循环略微更快(尽管除非在非常时间关键的代码中,您不会注意到差别)。
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;
}
只需使用 break,就像这样:
int cont = 0;
foreach (ListViewItem lvi in listView.Items) {
if(cont==50) { //if listViewItem reach 50 break out.
break;
}
cont++; //increment cont.
}