我最近需要修改在continue
中使用多个for each
个案的某人的代码。添加是for each
内部的新控制循环,它立即打破了continue
逻辑。有没有一种很好的方法可以在没有重写所有继续情况的情况下在这样的循环中获取下一个列表项?
// Additional control loops within the member function which cannot be
// turned into functions due to native C++ data types.
{
for each(KeyValuePair<String^,String^> kvp in ListOfItems) {
do { // new condition testing code
// a bunch of code that includes several chances to continue
} while (!reachedCondition)
}
}
答案 0 :(得分:1)
continue
和break
转到最内层的控制循环。我在for
循环中使用了迭代器。因此,根据您的ListOfItems(即SortedList
或Dictionary
...),您可以迭代而不是continue
。
int i=0;
Dictionary^ d = gcnew Dictionary<string, string>();
for (IEnumerator<KeyValuePair<string, string>>^ e = d->GetEnumerator();i< d->Count;i++) {
// do stuff
e->MoveNext();
}