2009-06-18 4 views

답변

9

불행히도 스스로 해결해야합니다. For Each 구조는 시퀀스를 반복하기 위해 IEnumerator 인터페이스 구현을 사용하고 IEnumerator 인터페이스는 시퀀스 내의 해당 위치 또는 현재 인덱스를 나타내는 멤버를 노출시키지 않습니다.

+0

왜 이런 경우인지 아시나요? –

2

직접해야합니다. 대부분 For Each (C#의 foreach)를 수행하는 경우에는 반복 횟수를 신경 쓰지 않아도됩니다.

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입니다.