using System.Collections.Generic;
public IDictionary<string, object> Fields {get; set; }
public List<HL7Node> Children { get; set; }
Children = new List<HL7Node>();
public static void Main()
Fields = new Dictionary<string, object> {
{ "email", "jdoe@example.com" },
var child = new HL7Node {
Fields = new Dictionary<string, object> {
{ "email", "sdoe@example.com" },
var grandChild = new HL7Node {
Fields = new Dictionary<string, object> {
{ "email", "sdoe@example.com" },
var greatGrandChild = new HL7Node {
Fields = new Dictionary<string, object> {
{ "email", "sdoe@example.com" },
root.Children.Add(child);
root.Children[0].Children.Add(grandChild);
root.Children[0].Children[0].Children.Add(greatGrandChild);
Console.WriteLine(string.Format("Grandchild's name is {0}", root.Children[0].Children[0].Fields["fname"]));