是否有一种定义层次结构的技术

本文关键字:定义 层次结构 技术 一种 是否 | 更新日期: 2023-09-27 18:03:51

我如何定义一个简单的层次结构在一些易于阅读的格式,然后在c#中迭代/导航它?

我想我可以只定义一组类并获得属性,但我宁愿使用一种不太像代码的格式,一些类似xml的东西,甚至是纯文本—例如…

<root>
  <level1 name="whatever">
    <sublevel1 />
    <sublevel2 />
  </level1>
  <level2 />
  <level3 />
</root>

或者是asp.net MVC模型绑定器让我想到的

Root.Name=Thing
Root.Type=Object
Root.SubLevel[0].Name=SomeItems
Root.SubLevel[0].Type=Collection
Root.SubLevel[1].Name=OtherThing
Root.SubLevel[1].Type=Object
Root.SubLevel[1].SubLevel[0].Name=OtherItems
Root.SubLevel[1].SubLevel[0].Type=Collection

总之,越简单越好。我们的想法是通过层次结构进行迭代,并使用其属性(如"Name"、"Type"等)重复各种操作。我还希望能够使用索引(在第二个例子中),或者只是能够在导航时跟踪我在结构中的位置。除了用类建模之外,还能怎么做呢?

是否有一种定义层次结构的技术

XML是显而易见的选择,因为它非常适合于层次结构,并且在c#中对读取它有很好的支持(特别是通过System.Xml.Linq.XDocument)。

如果您确实需要一个替代方案,而不知道为什么,我建议您查看YAML: http://en.wikipedia.org/wiki/Yaml