Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengisih Senarai Berdasarkan Susunan Pengecam dalam Senarai Lain Menggunakan LINQ?
Dalam banyak senario pengaturcaraan, anda mungkin mendapati diri anda mempunyai dua senarai: satu mengandungi pengecam dan satu lagi mengandungi item yang berkaitan dengan pengecam tersebut. Cabaran timbul apabila anda perlu mengekalkan susunan item yang sama dalam kedua-dua senarai. Artikel ini menyediakan penyelesaian yang mudah dan cekap menggunakan LINQ untuk menangani masalah ini.
Andaikan anda mempunyai senarai pengecam:
List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };
Anda juga mempunyai senarai item yang diwakili oleh ID dalam docIds:
List<T> docs = GetDocsFromDb(...);
Matlamat anda adalah untuk menyusun semula senarai dokumen dalam tertib menaik berdasarkan yang sepadan pengecam dalam docId. Susunan item dalam kedua-dua senarai hendaklah sama.
Ekspresi LINQ berikut menyelesaikan masalah ini:
docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();
Penjelasan:
Kaedah ini menyusun semula senarai dokumen dengan cekap berdasarkan pengecam dalam docId, memastikan item dalam kedua-dua senarai berada dalam susunan yang sama.
Atas ialah kandungan terperinci Bagaimana Mengisih Senarai Berdasarkan Susunan Pengecam dalam Senarai Lain Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!