Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Mendapatkan Indeks Kriteria Khusus Pertemuan Objek dengan Cekap?

Bagaimanakah LINQ Boleh Mendapatkan Indeks Kriteria Khusus Pertemuan Objek dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2025-01-15 11:34:441017semak imbas

How Can LINQ Efficiently Retrieve the Index of an Object Meeting Specific Criteria?

LINQ: Cekap Mencari Indeks Objek

Manipulasi data selalunya memerlukan mencari indeks objek yang sepadan dengan kriteria tertentu. Walaupun gelung tradisional berfungsi, LINQ menyediakan penyelesaian yang lebih bersih dan cekap.

Bayangkan anda mempunyai koleksi objek (seperti susunan kereta). Untuk mencari indeks kereta pertama yang memenuhi syarat tertentu, LINQ menawarkan pendekatan ringkas.

Kuncinya ialah mengubah koleksi asal menjadi urutan tupel, setiap satu mengandungi objek dan indeksnya. Kaedah Select LINQ, menggunakan ungkapan lambda, mencapai ini:

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

Ini mencipta urutan baharu. Sekarang, gunakan kaedah First untuk mencari tuple pertama yang memenuhi keadaan anda:

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

Untuk lebih ringkas, leverage jenis inferens:

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

Ini secara langsung mengembalikan indeks objek padanan pertama, menghapuskan keperluan untuk kaedah gelung yang kurang cekap. Ambil perhatian bahawa myCondition mewakili kriteria khusus anda untuk memilih kereta dan First akan membuang pengecualian jika tiada padanan ditemui.

Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Mendapatkan Indeks Kriteria Khusus Pertemuan Objek dengan Cekap?. 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