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
DDDasal
2025-01-19 12:16:09982semak imbas

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:

<code class="language-csharp">docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();</code>

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:
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