"ExpandoObject"

static void Test() {
	dynamic user = new ExpandoObject();
	user.Name = "Ben";
	user.Age = 30;
	
	// Prints "User Name is Ben" and "User Age is 30"
	foreach (var kvp in (IDictionary<String, Object>) user) {
		Console.WriteLine($"User {kvp.Key} is {kvp.Value}");
	}
}


Code snippet taken from "Two Decades of C#: A Reference - C# 2, 3 and 4".