我正在将库从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/

10-11 22:16