从现有的层次结构创建不可变的集合结构
Posted
技术标签:
【中文标题】从现有的层次结构创建不可变的集合结构【英文标题】:Creating an immutable collection structure from existing hierarchical structure 【发布时间】:2019-09-13 13:59:59 【问题描述】:我有一个存储分层数据的对象。我已经成功地从平面结构创建了我需要的结构,但这需要我使用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
。
【问题讨论】:
【参考方案1】:我找不到 Children 属性的设置位置,但您只需将 .ToImmutableList()
添加到您的列表中
item.Children = yourList.ToImmutableList();
【讨论】:
以上是关于从现有的层次结构创建不可变的集合结构的主要内容,如果未能解决你的问题,请参考以下文章