Есть ли метод определения иерархической структуры? - PullRequest
0 голосов
/ 28 июля 2011

Как я могу определить простую иерархию в каком-то удобном для чтения формате, а затем выполнить итерацию / навигацию по ней в C #?

Полагаю, я мог бы просто определить набор классов и получить свойства, но я бы предпочел использовать менее выглядящий кодом формат, например xml-ish или даже простой текст - например ..

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

или, может быть, что-то связующее модель MVC asp.net только что заставил меня думать о

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 Ответ

1 голос
/ 28 июля 2011

XML является очевидным выбором, так как он идеально подходит для иерархий, и есть отличная поддержка для чтения его в C # (особенно через System.Xml.Linq.XDocument).

Если вы действительно хотите альтернативу, не зная почему, я бы посоветовал взглянуть на YAML: http://en.wikipedia.org/wiki/Yaml

...