我有一个List<Element>对象集合 ( ),如下所述:
class Element
{
  string Name;
  string Value;
  ICollection<Element> ChildCollection;
  IDictionary<string, string> Attributes;
}
我基于读入的一些 XML 构建了一个对象List<Element>集合Element,对此我非常满意。目前如何实现对这些元素的搜索让我不解,但想知道是否有更好的解决方案。
集合的结构如下所示:
- 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)是否合理?