使用LINQ 根據另一個列表中的ID 對列表進行排序
在軟體開發中,通常需要使用多個列表,這些列表具有相應的元素。在這種情況下,使用者有兩個清單:一個包含一系列識別碼(docId),另一個包含對應的T項(docs)。挑戰在於按照與 docIds 清單相同的順序對文件清單進行排序,同時保持文件清單的原始類型 (List
要使用 LINQ(語言整合查詢)實現此目的,可以利用 OrderBy 擴充方法。此方法採用 lambda 表達式來指定集合中的元素應如何排序。在這種特定情況下,lambda 表達式需要存取 docs 清單中每個項目的 Id 屬性,以將其與 docIds 清單中對應的識別碼進行比較。
以下LINQ 表達式完成此任務:
docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();
此表達式將迭代docs 列表,對於每個項目,它將呼叫docIds 列表上的IndexOf 方法來確定對應的位置標識符。結果是一個有序枚舉,然後將其指派給文件清單。透過使用 ToList 方法,有序枚舉將轉換回 List
總之,此 LINQ 表達式提供了一種簡單而有效的方法來根據另一個清單中的標識符對項目清單進行重新排序,允許保留原始清單的順序和類型。
以上是如何使用 LINQ 根據另一個清單中 ID 的順序對清單進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!