2014-05-02 26 views
0

我有一個列表中的項目數量或list_1。每個項目都是來自數據庫的一行。 這些項目的導入將在另一個列表或list_2上發生。 list_2已經包含相同類型的內容。
有沒有辦法做到這一點,以便只有那些不在list_2中的項目才能被導入?如何檢查相同的物品並更新清單?

請注意,必須在list_2中保留原始訂單,並且新項目將按原始訂單導入。順序很重要,因爲list_2實際上是一個併發隊列。因此,list_1的內容應該以某種方式更新(清除重複項),然後才能開始將它導入list_2。實際導入list_2(隊列)不是問題,它是清理list_1對我感興趣的方法。謝謝。

+0

不要你的項目有標識? – Kilazur

回答

0
using System.Linq; 
//... 

var strippedList1 = list_1.Except(list_2); 

爲了使這項工作,你需要確保你的對象實現Equals/GetHashcode

+0

謝謝。不確定''對象實現Equals/GetHashcode'的意思。 – user3544570

+0

我假設你有'list_2是列表'。你需要確保'SomeClass'覆蓋'Object.Equals'和'Object.GetHashcode'。否則,.NET可以比較兩個對象的唯一方法是比較兩個對象是否是對內存中同一物理對象的引用,這可能對您的方案沒有幫助。 – decPL

+0

list_1和list_2實際上是類型'列表'。我也將結果列表設置爲類型'列表'。 – user3544570

0

請看看我下面的代碼,它可以幫助你

 List<string> l = new List<string>(); 
     l.Add("1"); 
     l.Add("2"); 
     List<string> l1 = new List<string>(); 
     l1.Add("1"); 
     var abc = l.Except(l1); 
相關問題