Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Isih Senarai Berdasarkan Susunan ID dalam Senarai Lain Menggunakan LINQ?

Bagaimanakah Saya Boleh Isih Senarai Berdasarkan Susunan ID dalam Senarai Lain Menggunakan LINQ?

Susan Sarandon
Lepaskan: 2025-01-19 11:57:10
asal
787 orang telah melayarinya

How Can I Sort a List Based on the Order of IDs in Another List Using LINQ?

Isih Senarai Berdasarkan ID daripada Senarai Lain Menggunakan LINQ

Dalam pembangunan perisian, selalunya perlu bekerja dengan berbilang senarai yang mempunyai elemen yang sepadan. Dalam kes ini, pengguna mempunyai dua senarai: satu mengandungi satu siri pengecam (docIds) dan satu lagi mengandungi item T yang sepadan (docs). Cabarannya ialah untuk mengisih senarai dokumen dalam susunan yang sama seperti senarai docId, sambil mengekalkan jenis asal senarai dokumen (List).

Untuk mencapai ini menggunakan LINQ (Language Integrated Query), seseorang boleh menggunakan kaedah sambungan OrderBy. Kaedah ini mengambil ungkapan lambda yang menentukan cara elemen dalam koleksi harus dipesan. Dalam kes khusus ini, ungkapan lambda perlu mengakses sifat Id setiap item dalam senarai dokumen untuk membandingkannya dengan pengecam yang sepadan dalam senarai docId.

Ekspresi LINQ berikut menyelesaikan tugas ini:

docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();
Salin selepas log masuk

Ungkapan ini akan berulang ke atas senarai dokumen, untuk setiap item, ia akan memanggil kaedah IndexOf pada senarai docId untuk menentukan kedudukan pengecam yang sepadan. Hasilnya ialah tertib enumerable, yang kemudiannya diberikan kepada senarai dokumen. Dengan menggunakan kaedah ToList, enumerable yang dipesan ditukar kembali kepada List.

Ringkasnya, ungkapan LINQ ini menyediakan cara yang mudah dan cekap untuk menyusun semula senarai item berdasarkan pengecam daripada senarai lain, membenarkan pengekalan kedua-dua susunan dan jenis senarai asal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Senarai Berdasarkan Susunan ID dalam Senarai Lain Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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