利用 LINQ 辨識獨特的項目
LINQ(語言整合查詢)提供了一種在 .NET 應用程式中查詢和操作資料的簡化方法。 一項常見任務涉及識別一個集合中另一個集合中不存在的元素。
此範例示範了兩個 Person
物件清單:peopleList1
和 peopleList2
。目標是提取 peopleList2
中不存在於 peopleList1
中的個體。
基於 LINQ 的解
以下 LINQ 查詢可實現此目的:
<code class="language-csharp">var result = peopleList2.Where(p => !peopleList1.Any(p2 => p2.ID == p.ID));</code>
此查詢過濾 peopleList2
,排除 Person
存在於 ID
中的任何 peopleList1
。
替代 LINQ 方法
另一個 LINQ 表達式是:
<code class="language-csharp">var result = peopleList2.Where(p => peopleList1.All(p2 => p2.ID != p.ID));</code>
此方法透過驗證 Person
中沒有 peopleList2
共用相同的 Person
來辨識 peopleList1
中唯一的 ID
物件。
效能分析
重要的是要考慮到這兩種方法的時間複雜度都是O(nm),其中n 代表peopleList1
和 m 的大小* 代表peopleList2
的大小。 對於大量資料集,這種複雜性可能會導致效能瓶頸。 在這種情況下,可能需要探索替代演算法或資料結構(例如雜湊表)來進行最佳化。
以上是如何使用 LINQ 有效地尋找一個清單中不在另一個清單中的唯一項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!