首頁 >後端開發 >C++ >如何根據單獨清單中的 ID 對物件清單進行排序?

如何根據單獨清單中的 ID 對物件清單進行排序?

DDD
DDD原創
2025-01-19 12:16:091031瀏覽

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

根據另一個清單中的 ID 對物件清單進行排序

在某些情況下,您可能需要根據儲存在單獨清單中的 ID 對物件清單進行排序。考慮以下情況:

您有一個名為 docIdsList<long>,包含以下值:{ 6, 1, 4, 7, 2 }。此外,您還有一個名為 docsList<T>,儲存由 docIds 中的 ID 表示的物件。

您的目標是保持兩個清單中項目順序的一致性。這表示 List<T> 中的物件必須佔據與 List<long> 中其對應 ID 相同的位置,例如,docs 中 ID 為 1 的物件應位於索引 1。

為了在不修改 List<T> 的情況下實現此排序,您可以使用 LINQ,如下所示:

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

此 LINQ 表達式首先使用 IndexOf 來決定 docIds 中每個物件 ID 的索引。然後,它使用此索引作為排序鍵,有效地將 List<T> 中的物件與其在 List<long> 中的 ID 對齊。

以上是如何根據單獨清單中的 ID 對物件清單進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn