C# вывод всех свойств объекта

Всем привет, нужна помощь, например, есть такой класс:

class Foo
{
    public string Value1 { get; set; }
    public string Value2 { get; set; }
    public string Value3 { get; set; }
    public string Value4 { get; set; }
    ...
    public string Value41 { get; set; }
}

При дальнейшем создании объекта, мне надо вывести все свойства объекта на экран консоли, я делаю это так:

Console.WriteLine($"Значение 1 = {obj1.Value1}");
...
Console.WriteLine($"Значение 41 = {obj1.Value41}");

Получается не очень красивый и громоздкий код, можно ли как то в цикле пройтись и вывести все свойства, может быть что-то типа такой конструкции:

foreach(string el in attrs)
{
    Console.WriteLine(el);
}

Ответы (1 шт):

Автор решения: Grundy

Можно использовать рефлексию: метод GetProperties

foreach(var prop in typeof(Foo).GetProperties())
{
    Console.WriteLine(prop.Name, prop.GetValue(obj1));
}
→ Ссылка