Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Indeks Lelaran Semasa dalam Gelung Foreach C#?

Bagaimanakah Saya Boleh Mendapatkan Indeks Lelaran Semasa dalam Gelung Foreach C#?

DDD
Lepaskan: 2025-01-27 18:06:11
asal
227 orang telah melayarinya

How Can I Get the Index of the Current Iteration in a C# Foreach Loop?

Gunakan indeks berulang dalam gelung foreach

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>
Salin selepas log masuk

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>
Salin selepas log masuk
Dengan menggabungkan struktur ini, anda boleh mendapatkan indeks berulang semasa dalam kitaran C# Foreach, dengan itu meningkatkan ketepatan dan fleksibiliti kod.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan