Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengisih Senarai Objek Berdasarkan ID daripada Senarai Berasingan?

Bagaimana untuk Mengisih Senarai Objek Berdasarkan ID daripada Senarai Berasingan?

DDD
Lepaskan: 2025-01-19 12:16:09
asal
1031 orang telah melayarinya

How to Sort a List of Objects Based on IDs from a Separate List?

Isih senarai objek berdasarkan ID dalam senarai lain

Dalam sesetengah kes, anda mungkin perlu mengisih senarai objek berdasarkan ID mereka yang disimpan dalam senarai berasingan. Pertimbangkan perkara berikut:

Anda mempunyai docIds bernama List<long> dengan nilai berikut: { 6, 1, 4, 7, 2 }. Selain itu, anda mempunyai docs bernama List<T> yang menyimpan objek yang diwakili oleh ID dalam docIds.

Matlamat anda adalah untuk mengekalkan ketekalan dalam susunan item dalam kedua-dua senarai. Ini bermakna objek dalam List<T> mesti menduduki kedudukan yang sama dengan ID yang sepadan dalam List<long>, contohnya, objek dengan ID 1 dalam docs hendaklah berada pada indeks 1.

Untuk mencapai pengisihan ini tanpa mengubah suai List<T> anda boleh menggunakan LINQ seperti berikut:

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

Ungkapan LINQ ini mula-mula menggunakan IndexOf untuk menentukan indeks setiap ID objek dalam docIds. Ia kemudian menggunakan indeks ini sebagai kunci isihan, menjajarkan objek dalam List<T> dengan ID mereka dalam List<long> dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Objek Berdasarkan ID daripada Senarai Berasingan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan