2009-06-18 16 views

答えて

9

残念ながら、あなた自身でそれを行う必要があります。 For Eachコンストラクトは、IEnumeratorインターフェイスの実装を使用してシーケンスを反復し、IEnumeratorインターフェイスは、シーケンス内の位置または現在のインデックスを示すメンバーを公開しません。

+0

これは誰でも知っていますか? –

2

あなた自身で行う必要があります。ほとんどの場合、for Each(foreachはC#で)をやっているなら、繰り返し回数は気にしません。

0

各要素MのForeachループは、M個の要素のコレクションで検出されます。

したがって、いいえ、FORループにあるような明示的な反復カウントはありません。

6

Visual Studio 2009(またはVB.Net 9.0)を使用している場合は、選択オーバーライドを使用して値をカウントできます。

For Each cur in col.Select(Function(x,i) New With { .Index = i, .Value = x }) 
... 
Next 
7

私はイテレータ変数が必要な場合は、私は(すべてのIEnumerableをは.Countプロパティを持つべきである)の代わりにforループを使用します。代わりに、同じ結果になります

For Each element as MyType in MyList 
    .... 
Next 

書き込み

For i as integer = 0 to MyList.Count - 1 
    element = MyList(i) 
    .... 
Next 

。イテレータとしてはi、現在の要素はelementです。