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

时间:2011-07-28 01:21:58

标签: c# c#-4.0 hierarchy hierarchical-data

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

我想我可以定义一组类并获取属性,但我宁愿使用代码较少的格式,例如xml-ish甚至是纯文本 - 例如..

<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

无论如何,越简越好。我们的想法是遍历层次结构并使用其属性重复各种操作 - 如“名称”,“类型”等。我还希望能够使用索引(在第二个示例中)或者只是能够在导航过程中跟踪我在结构中的位置。除了用类建模之外,怎么办呢?

1 个答案:

答案 0 :(得分:1)

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

如果你真的想要另类,不知道为什么,我会建议你看看YAML:http://en.wikipedia.org/wiki/Yaml