Apakah ada beberapa konstruksi bahasa yang jarang saya temui (seperti beberapa yang saya pelajari baru-baru ini, beberapa di Stack Overflow) di C # untuk mendapatkan nilai yang mewakili iterasi saat ini dari foreach loop?
Misalnya, saya saat ini melakukan sesuatu seperti ini tergantung pada keadaan:
int i = 0;
foreach (Object o in collection)
{
// ...
i++;
}
foreach
adalah untuk menyediakan mekanisme iterasi umum untuk semua koleksi terlepas dari apakah mereka dapat diindeks ( List
) atau tidak ( Dictionary
).
Dictionary
tidak dapat diindeks, iterasi Dictionary
tidak melewatinya dalam urutan tertentu (yaitu Pencacah dapat diindeks oleh fakta bahwa ia menghasilkan elemen secara berurutan). Dalam pengertian ini, kita dapat mengatakan bahwa kita tidak mencari indeks dalam koleksi, melainkan indeks elemen enumerasi saat ini dalam enumerasi (yaitu apakah kita berada pada elemen enumerasi pertama atau kelima atau terakhir).