У меня есть коллекция (List<Element>
) объектов, как описано ниже:
class Element
{
string Name;
string Value;
ICollection<Element> ChildCollection;
IDictionary<string, string> Attributes;
}
Я создаю List<Element>
коллекцию из Element
объектов на основе некоторого XML, который я прочитал, и я вполне доволен этим. Как реализовать поиск этих элементов в настоящее время, я не в тупике, но задаюсь вопросом, есть ли лучшее решение.
Структура коллекции выглядит примерно так:
- Element (A)
- Element (A1)
- Element (A1.1)
- Element (A2)
- Element (B)
- Element (B1)
- Element (B1.1)
- Element (B1.2)
- Element (C)
- Element (C1)
- Element (C2)
- Element (C3)
В настоящее время я использую рекурсию для поиска в Attributes
словаре каждого верхнего уровня (A, B, C) Element
определенного KeyValuePair
. Если я не нахожу его на верхнем уровне Element
, я таким же образом начинаю искать его ChildElement
коллекцию (1, 1.1, 2, 2.1, n и т. д.).
Что мне интересно, так это то, есть ли лучший метод реализации поиска по этим объектам или рекурсия является лучшим ответом в этом случае, если я должен реализовать поиск, как сейчас, top -> child -> child -> и т. д. или мне следует искать каким-то другим способом, например, сначала все верхние уровни?
Могу ли я и будет ли разумно использовать TPL для параллельного поиска на каждом верхнем уровне (A, B, C)?