3 回答

TA貢獻1966條經驗 獲得超4個贊
您可以使用Except:
List<car> list1 = GetTheList();
List<car> list2 = GetSomeOtherList();
List<car> result = list2.Except(list1).ToList();
您甚至可能不需要這些臨時變量:
List<car> result = GetSomeOtherList().Except(GetTheList()).ToList();
請注意,Except這不會修改任何一個列表-它會使用結果創(chuàng)建一個新列表。

TA貢獻1866條經驗 獲得超5個贊
您不需要索引,因為List<T>該類允許您通過值而不是通過使用Remove函數(shù)來刪除項。
foreach(car item in list1) list2.Remove(item);

TA貢獻1818條經驗 獲得超11個贊
在我的情況下,我有兩個不同的列表,具有相同的標識符,有點像外鍵?!?nzrytmn”引用的第二個解決方案:
var result = list1.Where(p => !list2.Any(x => x.ID == p.ID && x.property1 == p.property1)).ToList();
是最適合我的情況的一種。我需要加載沒有已注冊記錄的DropDownList。
謝謝 ?。。?/p>
這是我的代碼:
t1 = new T1();
t2 = new T2();
List<T1> list1 = t1.getList();
List<T2> list2 = t2.getList();
ddlT3.DataSource= list2.Where(s => !list1.Any(p => p.Id == s.ID)).ToList();
ddlT3.DataTextField = "AnyThing";
ddlT3.DataValueField = "IdAnyThing";
ddlT3.DataBind();
- 3 回答
- 0 關注
- 424 瀏覽
添加回答
舉報