Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Indeks Unsur dalam Senarai atau Tatasusunan Menggunakan LINQ?

Bagaimana untuk Mendapatkan Indeks Unsur dalam Senarai atau Tatasusunan Menggunakan LINQ?

Barbara Streisand
Barbara Streisandasal
2025-01-15 08:28:44527semak imbas

How to Get the Index of an Element in a List or Array Using LINQ?

Mencari Indeks Unsur Dengan Cekap Menggunakan LINQ

Menggunakan struktur data seperti senarai dan tatasusunan selalunya memerlukan pengesanan indeks elemen yang sepadan dengan kriteria tertentu. LINQ menawarkan penyelesaian yang elegan, menyediakan kod ringkas dan boleh dibaca berbanding pendekatan berasaskan gelung tradisional.

Untuk menentukan indeks elemen pertama yang memenuhi syarat, pertimbangkan pertanyaan LINQ ini:

<code class="language-csharp">myCars
    .Select((car, index) => new { car, index })
    .First(myCondition)
    .index;</code>

Kod ini mula-mula menggunakan Select untuk mencipta objek tanpa nama, menggandingkan setiap car dengan indexnya. First kemudian tapis jujukan ini, mengembalikan objek pertama yang memuaskan myCondition. Akhir sekali, sifat index objek ini mendedahkan indeks yang diingini.

Versi yang lebih padat sedikit:

<code class="language-csharp">myCars
    .Select((v, i) => new { car = v, index = i })
    .First(myCondition)
    .index;</code>

Pemudahan selanjutnya boleh dilakukan menggunakan tuple C# 7:

<code class="language-csharp">myCars
    .Select((car, index) => (car, index))
    .First(myCondition)
    .index;</code>

Faedah menggunakan LINQ adalah jelas: ia menyampaikan kod yang bersih dan ekspresif, menghapuskan keperluan untuk lelaran manual dan pengurusan pembolehubah eksplisit.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Indeks Unsur dalam Senarai atau Tatasusunan Menggunakan LINQ?. 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