How to list all Variables of Class

Your question isn’t perfectly clear. It sounds like you want the values of the fields for a given instance of your class:

var fieldValues = foo.GetType()
                     .GetFields()
                     .Select(field => field.GetValue(foo))
                     .ToList();

Note that fieldValues is List<object>. Here, foo is an existing instance of your class.

If you want public and non-public fields, you need to change the binding flags via

var bindingFlags = BindingFlags.Instance |
                   BindingFlags.NonPublic |
                   BindingFlags.Public;
var fieldValues = foo.GetType()
                     .GetFields(bindingFlags)
                     .Select(field => field.GetValue(foo))
                     .ToList();

If you merely want the names:

var fieldNames = typeof(Foo).GetFields()
                            .Select(field => field.Name)
                            .ToList();

Here, Foo is the name of your class.

Leave a Comment