首頁 > 後端開發 > C++ > 如何使用 LINQ 根據另一個清單中標識符的順序對清單進行排序?

如何使用 LINQ 根據另一個清單中標識符的順序對清單進行排序?

Patricia Arquette
發布: 2025-01-19 12:12:11
原創
270 人瀏覽過

How to Sort a List Based on the Order of Identifiers in Another List Using LINQ?

使用LINQ 根據另一個清單中的識別碼對清單進行排序

在許多程式設計場景中,您可能會發現自己有兩個清單:一個包含標識符,另一個包含關聯的項目與這些標識符。當您需要在兩個清單中保持相同的項目順序時,就會出現挑戰。本文提供了一個使用 LINQ 來解決此問題的簡單而有效的解決方案。

假設您有一個識別符清單:

List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };
登入後複製

您還有一個由ID 表示的項目清單docIds:

List<T> docs = GetDocsFromDb(...);
登入後複製

您的目標是根據中對應的識別符會依升序重新排列文檔清單文檔ID。兩個列表中的項目順序應該相同。

以下LINQ 表達式可以解決此問題:

docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();
登入後複製

說明:

  1. OrderBy(d => ; docIds.IndexOf(d.Id)) :此lambda 表達式指定排序標準。它會檢索 docIds 清單中項目 ID 的索引,根據 docIds 中 ID 的位置對文件清單進行有效排序。
  2. ToList():這會將排序結果轉換為新列表,保留排序順序。

此方法根據 docIds 中的識別碼有效地對文件清單進行重新排序,確保兩個清單的順序相同。

以上是如何使用 LINQ 根據另一個清單中標識符的順序對清單進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板