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 に答える