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 的任何建议?

4

2 回答 2

5

您通常不想遍历IEnumerator; 您只需直接迭代IEnumerable

foreach (var pair in Concur_Dictionary) …

如果由于某种原因您无权访问IEnumerable,您可以这样做:

while (Ien.MoveNext())
{
    var pair = Ien.Current;
    …
}
于 2013-02-20T08:20:37.613 回答
1

你可以使用MoveNext()它。

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

你可以做这样的事情。

或者这可以做到。

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

试试这对我有用的东西。

于 2013-02-20T08:32:01.027 回答