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

Bagaimanakah Saya Boleh Mengakses Indeks Lelaran dalam Gelung Foreach C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-27 17:56:10283semak imbas

How Can I Access the Iteration Index in a C# Foreach Loop?

Mengakses indeks lelaran dalam gelung c# foreach

C# Gelung menawarkan cara ringkas untuk melangkah melalui koleksi. Walau bagaimanapun, secara langsung mengakses indeks lelaran tidak disokong secara semulajadi. Berikut adalah beberapa kaedah untuk mencapai ini:

foreach

1. Kaunter manual:

Pendekatan paling mudah melibatkan kaunter yang ditambah secara manual:

<code class="language-csharp">int index = 0;
foreach (var item in myCollection)
{
    // Use 'item' and 'index'
    index++;
}</code>
2. LINQ's

dengan indeks: Select kaedah Linq

memberikan beban yang merangkumi indeks:

Select

Ini mewujudkan jenis tanpa nama yang mengandungi nilai dan indeksnya.
<code class="language-csharp">foreach (var item in myCollection.Select((value, index) => new { Value = value, Index = index }))
{
    var value = item.Value;
    var index = item.Index;
    // Use 'value' and 'index'
}</code>

3. ValueTuple (C# 7.0 dan kemudian):

untuk prestasi yang lebih baik dan mengelakkan peruntukan timbunan (terutamanya dengan koleksi besar), gunakan

:

ValueTuple

ini memanfaatkan dekonstruksi tuple untuk sintaks bersih.
<code class="language-csharp">foreach (var (value, index) in myCollection.Select((value, index) => (value, index)))
{
    // Access 'value' and 'index' directly
}</code>

4. Untuk gelung (alternatif):

Untuk situasi yang memerlukan akses indeks, gelung standard

menawarkan penyelesaian yang lebih langsung:

for

Pendekatan ini biasanya lebih disukai apabila indeksnya penting untuk logik gelung. Pilih kaedah yang paling sesuai dengan gaya pengekodan dan keperluan prestasi anda. Untuk kes -kes yang mudah, kaunter manual cukup. Untuk koleksi yang lebih besar atau senario yang lebih kompleks, LINQ dengan
<code class="language-csharp">for (int index = 0; index < myCollection.Count; index++)
{
    var item = myCollection[index];
    // Use 'item' and 'index'
}</code>
menawarkan keseimbangan kebolehbacaan dan kecekapan. Gelung

kekal sebagai pilihan yang sesuai apabila manipulasi indeks adalah pusat operasi gelung. ValueTuple

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Indeks Lelaran dalam Gelung Foreach C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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