一尘不染

如何列出类的所有变量

c#

有没有办法列出C#中某个类的所有变量(字段)。如果可以,那么有人可以给我一些示例,说明如何将其保存在a中List并使用Anonymous Types(var)进行获取。


阅读 258

收藏
2020-05-19

共1个答案

一尘不染

您的问题并不十分清楚。听起来您想要类的给定实例的字段值:

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

请注意fieldValuesList<object>。这foo是您的课程的现有实例。

如果需要public和非public字段,则需要通过以下方式更改绑定标志

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

如果您只想要名称:

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

Foo是您的班级名称。

2020-05-19