2010-03-03 37 views
0
List<object> A = new List<object>; 
List<object> B = new List<object>; 
List<object> C = new List<object>; 

C.Add(item); 
B.Add(C); 
A.Add(B); 

最後我有一個列表包含比列表B和列表B中列出C. 我想從列表C.項目<T>

刪除的項目如何能做到這一點的LINQ或拉姆達?

+4

請更清楚地陳述你的意圖,**和什麼時候downvoted的人,請說爲什麼你是downvoting ... ** – 2010-03-03 05:41:54

+0

爲什麼你使用'列表' - 可以'項目'是任何類型? – 2010-03-03 05:42:17

+0

只是你的例子 – Shailesh 2010-03-03 05:59:36

回答

6

LINQ並不打算用於對集合進行就地更改。使用老派Remove/RemoveAll

((List<object>)((List<object>)A[0])[0]).Remove(item); 

((List<object>)((List<object>)A[0])[0]).RemoveAll(o => ((MyClass)o).Id == 5); 

注:此代碼段中所需鑄件的數量表明您使用名單<牛逼>的方式可能不是最佳爲您的使用情況。我強烈建議您考慮指定一個比對象更具體的泛型參數。

+0

沒關係,但如果我想刪除所有包含ID = 5的項目,比如list.removeAll(dic => dic.id == 5) – Shailesh 2010-03-03 06:02:12

+0

@Shailesh:Then Then RemoveAll? – dtb 2010-03-03 08:01:07