【问题标题】:Removing item from inner list - linq从内部列表中删除项目 - linq
【发布时间】:2016-01-13 12:38:35
【问题描述】:

我有列表 list1,其中包含另一个列表 list2

我必须使用 lambda 表达式从 list1list2 中删除 id=2 的项目。 怎么写啊?

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

我需要从 list1 中删除一些球的图像(其中图像 id 为 1)

【问题讨论】:

  • 你能根据你的问题创建一个Minimal, Complete, and Verifiable example吗?
  • 你有没有尝试过你身边的任何事情?你用谷歌搜索过吗?
  • 是的。我对 Linq/Lamda 表达式很陌生。

标签: c# linq


【解决方案1】:

你可以试试这个:

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

【讨论】:

  • 这个 sln 有效。删除图像后,我再次打印了所有图像 ID。它也打印'2'。即 2 没有被删除..对吗?
【解决方案2】:

类似

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

如果你的id引用list2,你必须循环。

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

或者,

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

【讨论】:

  • Id 用于image,而不是ball
  • id 用于图像。即对于 list2 对象
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-20
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 2016-05-08
  • 2011-03-18
相关资源
最近更新 更多