C#中的复杂数据类型
complex datatype in c#
我需要一些帮助来解决与 C# 中的复杂数据类型相关的问题。我有以下类型的数据,我想将它保存在变量中,但它会提高性能,因为我必须使用它进行搜索并且其中会有很多数据。数据样本如下:
ParentNode1
ChildNode1
ChildNode2
ChildNode3
ParentNode2
ParentNode3
ParentNode4
ChildNode1
ChildNode2
Node1
Node2
Node3
Nth level Node1
ChildNode3
ParentNode5
以上数据只是显示数据层次结构的示例。我不确定嵌套列表、字典、ienumerable 或 link 列表哪个与性能最相关。谢谢
如果您知道搜索将在单个级别进行,那么您可能需要一个列表列表:每个级别一个列表。如果您的层次结构有 N 个级别,那么您有 N 个列表。每个包含的节点是:
ListNode
Data // string
ParentIndex // index of parent in the previous list
因此,要搜索第 4 级,请转到该级别的列表,然后对该级别的每个节点进行 contains
或正则表达式测试。如果匹配,则 ParentIndex
值将为您提供 parent,其 ParentIndex
将为您提供 grandparent,等等
这样,除了找到匹配项外,您不必担心在层次结构中导航,也不必编写嵌套或递归算法来遍历树。
您也可以维护您的层次结构,每个 top-level 节点包含一个 child 节点的列表,并构建此辅助列表仅用于搜索。
我需要一些帮助来解决与 C# 中的复杂数据类型相关的问题。我有以下类型的数据,我想将它保存在变量中,但它会提高性能,因为我必须使用它进行搜索并且其中会有很多数据。数据样本如下:
ParentNode1
ChildNode1
ChildNode2
ChildNode3
ParentNode2
ParentNode3
ParentNode4
ChildNode1
ChildNode2
Node1
Node2
Node3
Nth level Node1
ChildNode3
ParentNode5
以上数据只是显示数据层次结构的示例。我不确定嵌套列表、字典、ienumerable 或 link 列表哪个与性能最相关。谢谢
如果您知道搜索将在单个级别进行,那么您可能需要一个列表列表:每个级别一个列表。如果您的层次结构有 N 个级别,那么您有 N 个列表。每个包含的节点是:
ListNode
Data // string
ParentIndex // index of parent in the previous list
因此,要搜索第 4 级,请转到该级别的列表,然后对该级别的每个节点进行 contains
或正则表达式测试。如果匹配,则 ParentIndex
值将为您提供 parent,其 ParentIndex
将为您提供 grandparent,等等
这样,除了找到匹配项外,您不必担心在层次结构中导航,也不必编写嵌套或递归算法来遍历树。
您也可以维护您的层次结构,每个 top-level 节点包含一个 child 节点的列表,并构建此辅助列表仅用于搜索。