如何遍历此IEnumerator

时间:2013-02-20 08:18:23

标签: c#-4.0

我从ConcurrentDictionary获得了一个IEnumerator类型。我试图使用以下方式迭代它

    System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string,string>>

    Ien  = Concur_Dictionary.GetEnumerator();

    foreach (KeyValuePair<string, string> pair in Ien) -->Error here
    {
    }

我收到以下错误

Error   4   foreach statement cannot operate on variables of type 'System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string,string>>' because 'System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string,string>>' does not contain a public definition for 'GetEnumerator'

关于如何迭代这个IEnumerator的任何建议?

2 个答案:

答案 0 :(得分:5)

您通常不希望迭代IEnumerator;你只是直接迭代IEnumerable

foreach (var pair in Concur_Dictionary) …

如果出于某种原因,您无法访问IEnumerable,则可以执行以下操作:

while (Ien.MoveNext())
{
    var pair = Ien.Current;
    …
}

答案 1 :(得分:1)

您可以使用MoveNext()

var enumerator = getInt().GetEnumerator();
while(enumerator.MoveNext())
{
    //Line of codes..
}

你可以这样做。

或者可以这样做。

foreach (var item in collection)
{
    // do your stuff   
}

尝试这件事对我有用。