我有一个存储分层数据的对象。我已经成功地从一个平面结构创建了我需要的结构,但这需要我使用List<>
它不是一成不变的(我想使用IReadOnlyList
)。
现在我无法真正理解如何基于这些子列表创建不可变列表。谁能指导我正确的方向?
该类如下所示:
public class ItemOrFolder
{
public string Id { get; }
public string Name { get; }
public List<ItemOrFolder> Children { get; set; } // Need to create immutable versions of these recursively
private ItemOrFolder(string id, string name)
{
Id = id;
Name = name;
}
public static ItemOrFolder Create(string id, string name)
{
return new ItemOrFolder(id, name);
}
}
如果Children
是null
,那么它是一个项目,否则它是一个文件夹,包含零个或多个ItemOrFolder
。