Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Isih Senarai Berdasarkan Susunan ID dalam Senarai Lain Menggunakan 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();
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!