Mendapatkan lelaran semasa dalam gelung foreach adalah tugas pengaturcaraan biasa. Walaupun C# tidak menyediakan penyelesaian yang terbina, ia mempunyai struktur yang unik yang dapat memenuhi permintaan ini.
Penyelesaian: Gunakan Objek Pilih dan Tanpa Nama
Satu kaedah adalah menggunakan kaedah pemilihan Linq, yang memberikan beban berat yang membolehkan anda menentukan fungsi, yang menggunakan nilai dan indeks sebagai parameter. Dengan memilih indeks dalam fungsi ini, anda boleh membuat objek tanpa nama yang mengandungi nilai dan indeks:
Dioptimumkan: Gunakan valuetuple dan dekonstruksi automatik
<code class="language-csharp">foreach (var item in Model.Select((value, i) => new { i, value })) { var value = item.value; var index = item.i; }</code>
Jika anda menggunakan versi C# 7.0 atau lebih tinggi, anda boleh menggunakan ValueTuple dan bukannya objek tanpa nama untuk mengelakkan peruntukan timbunan:
Di samping itu, dekonstruksi automatik tidak memerlukan atribut akses yang jelas:
<code class="language-csharp">foreach (var item in Model.Select((value, i) => (value, i))) { var value = item.value; var index = item.i; }</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Indeks Lelaran Semasa dalam Gelung Foreach C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!