如何找到枚举器的最终位置?

时间:2013-02-27 09:47:31

标签: c++-cli

如何找到枚举器的结束位置?对于这个枚举器,我没有在文档中看到任何atEnd方法。

SortedSet<Button ^>::Enumerator^ enumer = btnSet->GetEnumerator();
enumer->atEnd();

我的错误

error 'atEnd' : is not a member of 'System::Collections::Generic::SortedSet<T>::Enumerator'

1 个答案:

答案 0 :(得分:1)

你打算像while (enumer != btnSet->end())那样写一个循环,就像许多C ++迭代器一样吗?

你可以通过检查MoveNext()的返回值来检查一个枚举器是否还没有结束,所以循环就是这样:

SortedSet<Button^>::Enumerator^  enumer = btnSet->GetEnumerator();
while (enumer->MoveNext()) {
    Button^ btn = enumer->Current;
    // do stuff 
}

您还可以使用for each循环遍历集合,这看起来更清晰:

for each (Button^ btn in btnSet) {
    // do stuff
}