using System.Collections.Generic;
public class Characteristic
public string Name { get; set; }
public string Value { get; set; }
public static void Main()
new Characteristic {Name = "Age", Value = "31"},
new Characteristic {Name = "Height", Value = "6'1\""}
var characteristics = person.GetType().GetProperty("Characteristic", BindingFlags.Instance | BindingFlags.Public).GetValue(person, null) as System.Array;
foreach (var c in characteristics.Cast<Characteristic>())
Console.WriteLine("{0} = {1}", c.Name, c.Value);
foreach (var o in characteristics)
var name = o.GetType().GetProperty("Name", BindingFlags.Public | BindingFlags.Instance).GetValue(o, null);
var val = o.GetType().GetProperty("Value", BindingFlags.Public | BindingFlags.Instance).GetValue(o, null);
Console.WriteLine("{0} = {1}", name, val);