2016-01-13 38 views
0

我有列表list1,其中包含另一個列表,list2刪除內部列表中的項目 - linq

我不得不使用lambda表達式從list1的其中id = 2 list2中中刪除項目。 我該怎麼寫呢?

eg: list1 -> List<balls> -> Ball contains list of images. 
    list2 -> List<images> -> each image will have an id. 

我需要刪除的圖像從列表1(其中圖像的ID作爲1)

+5

能否請您創建一個[最小,完整,可驗證的示例](HTTP://計算器。 COM /幫助/麥克)基於你的問題? –

+0

你有沒有嘗試過任何事情?你有沒有使用Google? –

+0

是的。我對Linq/Lamda表達非常陌生。 – Sahi

回答

3

你可以用這個嘗試:

list1.ForEach(ball => 
    ball.list2.RemoveAll(image => image.Id == 2)); 
+0

這個sln工作。刪除圖像後,我再次打印所有的圖像ID的。它也打印'2'。即2沒有被移除......對。? – Sahi

1

喜歡的東西

list1.First(k => k.id == 2) 
    .list2.RemoveAt(0); 

一些球如果你的ID是指列表2,你有使循環。

foreach (var item in list1) 
{ 
    item.list2.RemoveAll(k => k.id == 2); 
} 

或者,

list1.ForEach(item => item.list2.RemoveAll(k => k.id == 2)); 
+0

'Id'是用於'image',而不是'ball' –

+0

id是用於圖片的。即列表2對象 – Sahi