У меня есть коллекция (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) параллельно?
Что вы ищете? – Sayse