C# 4.0 c语言中的复杂数据类型#
我需要一些帮助来解决与C#中复杂数据类型相关的问题。我有以下类型的数据,我想将其保存在变量中,但这将是高效的性能,因为我必须使用它进行搜索,其中将有大量的数据。数据样本如下:C# 4.0 c语言中的复杂数据类型#,c#-4.0,data-structures,complex-data-types,C# 4.0,Data Structures,Complex Data Types,我需要一些帮助来解决与C#中复杂数据类型相关的问题。我有以下类型的数据,我想将其保存在变量中,但这将是高效的性能,因为我必须使用它进行搜索,其中将有大量的数据。数据样本如下: ParentNode1 ChildNode1 ChildNode2 ChildNode3 ParentNode2 ParentNode3 ParentNode4 ChildNode1 ChildNode2
ParentNode1
ChildNode1
ChildNode2
ChildNode3
ParentNode2
ParentNode3
ParentNode4
ChildNode1
ChildNode2
Node1
Node2
Node3
Nth level Node1
ChildNode3
ParentNode5
以上数据只是显示数据层次结构的一个示例。我不确定嵌套列表、字典、ienumerable或链接列表中哪些与性能最相关。谢谢如果您知道搜索将在单个级别进行,那么您可能需要一个列表列表:每个级别一个列表。如果层次结构有N个级别,则有N个列表。每个节点都包含以下节点:
ListNode
Data // string
ParentIndex // index of parent in the previous list
因此,要搜索级别4,请转到该级别的列表,并在该级别的每个节点上执行contains
或regex测试。如果匹配,则ParentIndex
值将为您获取父对象,其ParentIndex
将为您获取祖父母,以此类推
通过这种方式,您不必担心在层次结构中导航,除非找到匹配项,并且不必编写嵌套或递归算法来遍历树
您还可以维护您的层次结构,每个顶级节点都包含一个子节点列表,并仅为搜索而构建此二级列表。您能告诉我您要搜索什么吗?当涉及到数据结构的效率时,这是非常重要的。谢谢回复。这些节点将是字符串类型,我将使用contains()或regexIs
parent-child
关系在其中搜索字符串,这些关系是预先为节点定义的?是的,必须通过数据类型在逻辑上实现。当我从某个节点获取一些数据时,我也需要它的父节点详细信息。是否应该有任何与搜索层次结构相关的附加约束?我的意思是寻找作为给定节点的子节点并包含。。。。