标签: c#
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);
最后,我有List A而不是List B,List B包含List C. 我想从列表C中删除一个项目。
如何使用LINQ或lambda执行此操作?
答案 0 :(得分: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);
注意:此代码段中所需的强制转化数量表明您使用 List&lt; T&gt; 的方式可能不适合您的使用案例。我强烈建议您考虑指定比 object 更具体的泛型参数。
答案 1 :(得分:3)
查看Remove,RemoveAt和RemoveRange。