【发布时间】:2018-08-16 12:26:17
【问题描述】:
我有这样的课:
public class Abc
{
public int Id { get; set; }
public List<Abc> Child{ get; set; }
}
我有一个这样的 Abc 嵌套列表,其中包含两个父项及其子项:
Abc (Id = 1)
|
|-- Abc (Id = 2)
|-- Abc (Id = 3)
|
|-- Abc (Id = 4)
|
|-- Abc (Id =5)
Abc (Id = 6)
|
|-- Abc (Id = 7)
|-- Abc (Id = 8)
|
|-- Abc (Id = 9)
|
|-- (Id = 10)
==== 更新 ====
话虽如此,我有两个输入参数:
- ID = 4
- Abc 类 (Id = 9) 的对象
- Abc 类的对象 (Id = 11)
我需要在整个列表中找出 id 为 4 的对象,并且仅当列表中不存在该对象时才将该对象插入其子项中。
所以 id = 9 已经存在,所以我不能插入。但我可以插入 Id = 11 的对象。
=== 更新 2 ====
所以添加 id = 11 后,列表应该是这样的。
Abc (Id = 1)
|
|-- Abc (Id = 2)
|-- Abc (Id = 3)
|
|-- Abc (Id = 4)
|
|-- Abc (Id =5)
|-- Abc (Id = 11) -- ADDED
Abc (Id = 6)
|
|-- Abc (Id = 7)
|-- Abc (Id = 8)
|
|-- Abc (Id = 9)
|
|-- (Id = 10)
我不知道如何实现这一点。 有人可以帮忙吗?它可以是 c# lambda 或 linq 或任何其他方法。
【问题讨论】:
-
这是你经常做的事情还是只会做一次?如果您这样做一次,那么仅递归您的列表可能就是要走的路。如果您经常这样做,那么您可能希望以 id 作为键存储您的 ABC 字典,这样您可以在获得特定 ABC 的 id 时非常快速地找到它。
-
如果您能向我们展示您的尝试并指出您面临的问题,我们会更容易为您提供帮助。
-
大家好,我刚刚更新了需求。请参阅更新下的部分。很抱歉错过了。
-
对此有什么帮助吗?应始终在整个列表中搜索 id。
标签: c# list linq lambda nested