2010-10-12 61 views
19

我有2個清單:同時存在於兩個列表LINQ的選擇項

myObject object1 = new myObject(id = 1, title = "object1"}; 
myObject object2 = new myObject(id = 2, title = "object2"}; 
myObject object3 = new myObject(id = 3, title = "object3"}; 

//List 1 
List<myObject> myObjectList = new List<myObject>{object1, object2, object3}; 

//List 2 
List<int> idList = new List<int>{2, 3}; 

是否有使用LINQ拉只在第一個列表中存在的第二個列表,這樣我留下的物件的方式:

{object2, object3} 

我看着相交,但它似乎只有在兩個列表都是相同類型時才起作用。

任何幫助將不勝感激。

謝謝。

回答

27

LINQ解決方案:

myObjectList = myObjectList.Where(X => idList.Contains(X.id)).ToList(); 
13
IEnumerable<myObject> matches = myObjectList.Join(
    idList, 
    o => o.Id, 
    id => id, 
    (o, id) => o); 
+1

@李:應該有一個變量名。 'IEnumerable 「variablename」= ......'。請編輯 – 2010-10-12 10:23:00

相關問題