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.