Tree<TKey, TValue>

public Tree(Func<TKey, IEnumerable<TKey>> pathSplitter, Func<IEnumerable<TKey>, TKey> pathCombiner, IReadOnlyTree<TKey, TValue>? parent = null, Predicate<IReadOnlyTree<TKey, TValue>>? canAddBranch = null, Predicate<IReadOnlyTree<TKey, TValue>>? canAddValue = null)

Language: C#

Дерево с возможностью добавления и удаления узлов и значений

Type Parameters:

  • TKey: Тип ключа узла дерева
  • TValue: Тип значения узла дерева

Parameters:

  • pathSplitter: Функция для разбиения ключа на путь
  • pathCombiner: Функция для объединения пути в ключ
  • parent: Родительский узел дерева
  • canAddBranch: Предикат для проверки возможности добавления ветви
  • canAddValue: Предикат для проверки возможности добавления значения

public TValue? Value { get; set; }

Language: C#

Значение узла дерева

public TreeNodeType NodeType

Language: C#

Тип узла дерева (ветвь или лист)

public IReadOnlyTree<TKey, TValue>? Parent

Language: C#

Родительский узел дерева

public bool ContainsBranch(TKey folder)

Language: C#

Проверяет, содержит ли дерево указанную ветвь

Parameters:

  • folder: Ключ ветви дерева

Returns: True, если ветвь с указанным ключом существует, иначе False

public IReadOnlyTree<TKey, TValue> GetBranch(TKey folder)

Language: C#

Получает ветвь дерева по указанному ключу

Parameters:

  • folder: Ключ ветви дерева

Returns: Ветвь дерева с указанным ключом

public bool TryGetBranch(TKey folder, [NotNullWhen(true)] out IReadOnlyTree<TKey, TValue>? branch)

Language: C#

Пытается получить ветвь дерева по указанному ключу

Parameters:

  • folder: Ключ ветви дерева
  • branch: Переменная для хранения найденной ветви

Returns: True, если ветвь с указанным ключом найдена, иначе False

public IEnumerable<TKey> Branches

Language: C#

Ключи всех ветвей дерева

public TKey? GetPath()

Language: C#

Получает путь к текущему узлу дерева

Returns: Путь к текущему узлу дерева

public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()

Language: C#

public void Clear()

Language: C#

public bool Remove(TKey[] key)

Language: C#

public bool ContainsKey(TKey key)

Language: C#

public bool Remove(TKey key)

Language: C#

public void Remove(Predicate<TKey> removeIf)

Language: C#

public void Execute(Action<KeyValuePair<TKey, TValue?>> action)

Language: C#

public int Count

Language: C#

public bool IsReadOnly

Language: C#

public void Add(TKey key, TValue value)

Language: C#

public bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)

Language: C#

public ICollection<TKey> Keys

Language: C#

public ICollection<TValue> Values

Language: C#