public static void Main()
var data = new { MyProperty1 = 123, MyProperty2 = "test" };
var result = data.GetObjectValues();
foreach(var item in result)
var data = new { MyProperty1 = 123, MyProperty2 = "test" };
var result = data.GetToStringValues();
foreach(var item in result)
var data = new { MyProperty1 = 123, MyProperty2 = "test" };
var prop = data.GetType().GetProperty("MyProperty1");
var result = prop.GetObjectValue(data);
Console.WriteLine("is int = {0}, value = {1}",result is int,result);
var data = new { MyProperty1 = 123, MyProperty2 = "test" };
var prop = data.GetType().GetProperty("MyProperty1");
var result = prop.GetToStringValue(data);
Console.WriteLine("is string = {0}, value = {1}",result is string,result);