Создание неизменяемой структуры коллекции из существующей иерархической структуры - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть объект, который хранит иерархические данные.Мне удалось создать нужную структуру из плоской структуры, но для этого мне потребовалось использовать 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 Ответ

0 голосов
/ 24 апреля 2019

Я не могу найти, где установлено свойство Children, но вам просто нужно добавить .ToImmutableList() в ваш список

item.Children = yourList.ToImmutableList();
...