【发布时间】:2013-07-13 13:17:10
【问题描述】:
我有一个对象集合 (List<Element>),如下所述:
class Element
{
string Name;
string Value;
ICollection<Element> ChildCollection;
IDictionary<string, string> Attributes;
}
我基于我读入的一些 XML 构建了一个 Element 对象的 List<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)
目前我正在使用递归搜索每个顶级(A、B、C)Element 的 Attributes 字典以查找特定的KeyValuePair。如果我在顶级 Element 中没有找到它,我开始以相同的方式搜索它的 ChildElement 集合(1、1.1、2、2.1、n 等)。
我很好奇的是是否有更好的方法来实现对这些对象的搜索,或者在这种情况下递归是否是更好的答案,如果我应该像目前一样实现搜索,top -> child -> child -> 等等,或者我是否应该以其他方式搜索,例如首先搜索所有顶级?
我是否可以使用 TPL 并行搜索每个顶层(A、B、C)并且是否合理?
【问题讨论】:
-
你在搜索什么?
标签: c# search recursion task-parallel-library icollection