2014-02-03 4 views
0

У меня есть объект Type Parent, который имеет дочерние элементы типа Parent и так далее. , какой тип данных лучше всего подходит для хранения данных такого рода. Добавление объектов является динамическим, так как пользователь добавляет объекты в пользовательский интерфейс.Хранение вложенных объектов

ответ

0

Поскольку имя Parent семантически вводит в заблуждение, я заменить его на Node, перефразировать ваш вопрос как код,

class Node : IEnumerable<Node> { } 

Теперь вы говорите, что вы хотите, чтобы поддержать динамическое изменение. Если будет немного изменить, или вообще оптовые изменения, которые я бы с

class Node : List<Node> { } 

но если там будет много небольших изменений,

class Node : LinkedList<Node> { } 

может оказаться более подходящим.

Если вы хотите поддерживать множество небольших изменений в своем дереве, я бы не использовал xml в качестве хранилища резервных копий. Хотя это, по-видимому, имеет смысл и прекрасно работает для деревьев с разумным размером, когда дерево велико, и вы добавляете или удаляете данные около начала документа, вы получаете заметный эффект Shlemiel The Painter по мере выделения памяти (de) и смещения хвоста , Если вы не используете реализацию XML-документа, которая позволяет избежать этого.

Преимущество использования XML - бесплатная сериализация, но XML не является наиболее удобным способом хранения ваших личных данных. Существуют более быстрые и меньшие альтернативы.

Смежные вопросы