从现有的层次结构创建不可变的集合结构

时间:2019-04-24 09:51:56

标签: c# immutability readonly-collection

我有一个存储分层数据的对象。我已经能够成功地从平面结构创建所需的结构,但这需要我使用不可更改的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

如果nullItemOrFolder,则为项目,否则为文件夹,包含零个或多个$x

1 个答案:

答案 0 :(得分:0)

我找不到设置“儿童”属性的位置,但您只需要在列表中添加.ToImmutableList()

item.Children = yourList.ToImmutableList();