我正在将库从C++移植到C#。旧的库使用来自C++的 vector ,而在C#中,我使用的是通用字典,因为它们实际上是我正在做的事情的良好数据结构(每个元素都有一个ID,然后我只使用TypeDictionary = Dictionary<String, Type>;
)。现在,在C#代码中,我使用像这样的循环
TypeDictionary.Enumerator tdEnum = MyTypeDictionary.GetEnumerator();
while( tdEnum.MoveNext() )
{
Type element = typeElement.Current.Value;
// More code here
}
遍历集合的元素。问题是,在特定情况下,我需要检查某个枚举器是否已到达集合的末尾,在C++中,我将进行如下检查:
if ( tdEnum == MyTypeDictionary.end() ) // More code here
但是我只是不知道如何在C#中处理这种情况,有什么想法吗?
谢谢
汤正雄
最佳答案
这是完成此操作的一种非常简单的方法。
bool hasNext = tdEnum.MoveNext();
while (hasNext) {
int i = tdEnum.Current;
hasNext = tdEnum.MoveNext();
}
我找到了一个在线教程,它也可以帮助您了解其工作原理。
http://www.c-sharpcorner.com/UploadFile/prasadh/Enumerators11132005232321PM/Enumerators.aspx
关于c# - 如何知道枚举器是否已到达C#中集合的末尾?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2714129/