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

Bagaimanakah Saya Mendapatkan Indeks Lelaran dalam Gelung Foreach C#?

Susan Sarandon
Lepaskan: 2025-01-27 18:13:09
asal
1019 orang telah melayarinya

How Do I Get the Iteration Index in a C# Foreach Loop?

Mengakses Indeks Lelaran dalam C# Foreach Loops

foreach gelung kerap digunakan dalam C# untuk lelaran melalui koleksi. Walau bagaimanapun, mengakses terus indeks lelaran dalam gelung foreach standard tidak disokong secara langsung. Artikel ini menggariskan kaedah yang cekap untuk mencapai matlamat ini.

Memanfaatkan LINQ untuk Akses Indeks

Kaedah

LINQ Select() menyediakan penyelesaian yang bersih. Seperti yang digambarkan dalam catatan oleh Ian Mercer di blog Phil Haack, pendekatan ini membolehkan mendapatkan semula kedua-dua item dan indeksnya:

<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

Ungkapan lambda kaedah Select() mengambil dua parameter: nilai dan indeksnya (i). Objek tanpa nama baharu dicipta untuk memegang kedua-duanya.

Peningkatan Prestasi dengan ValueTuple (C# 7.0 dan lebih baru)

Untuk prestasi yang lebih baik, terutamanya dengan koleksi yang lebih besar, ValueTuple menawarkan alternatif yang lebih cekap:

<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

Ini menggantikan objek tanpa nama dengan ValueTuple, mengurangkan overhed.

Kebolehbacaan yang dipertingkatkan dengan Pemusnahan (C# 7.0 dan lebih baharu)

Mempertingkatkan lagi kejelasan kod, memusnahkan tugasan memudahkan akses kepada indeks dan nilai:

<code class="language-csharp">foreach (var (value, i) in Model.Select((value, i) => (value, i)))
{
    // Access `value` and `i` directly.
}</code>
Salin selepas log masuk

Ini menghapuskan keperluan untuk akses item.value dan item.i eksplisit. Kaedah ini menggabungkan faedah prestasi ValueTuple dengan kebolehbacaan kod yang dipertingkatkan. Teknik ini menyediakan cara yang berkesan dan cekap untuk mengurus indeks lelaran dalam gelung foreach C#.

Atas ialah kandungan terperinci Bagaimanakah Saya Mendapatkan Indeks Lelaran 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan