我从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的任何建议?
答案 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
}
尝试这件事对我有用。