2009-06-18 38 views

Trả lời

9

Thật không may là bạn phải tự làm điều đó. Cấu trúc For Each sử dụng triển khai giao diện IEnumerator để lặp lại chuỗi và giao diện IEnumerator không hiển thị bất kỳ thành viên nào cho biết vị trí hoặc chỉ mục hiện tại của nó trong chuỗi.

+0

Có ai biết tại sao trường hợp này xảy ra không? –

2

Bạn sẽ phải tự làm điều đó. Chủ yếu, nếu bạn đang làm cho mỗi (foreach trong C#), sau đó bạn không quan tâm về số lần lặp lại.

0

Vòng lặp foreach cho mỗi phần tử M nó tìm thấy trong tập hợp các phần tử M.

Vì vậy, không, không có số lần lặp lại rõ ràng như sẽ có trong vòng lặp FOR.

6

Nếu bạn đang sử dụng Visual Studio 2009 (hoặc VB.Net 9.0), bạn có thể sử dụng tính năng Chọn ghi đè để nhận số đếm với các giá trị.

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

Nếu tôi cần biến lặp, tôi sử dụng vòng for thay thế (mọi IEnumerable phải có thuộc tính .Count).

Thay vì

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

ghi

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

đó sẽ là kết quả tương tự. Bạn có i làm trình lặp và element giữ phần tử hiện tại.

Các vấn đề liên quan