如何列出所有类的变量
有没有办法在C#中列出类的所有变量(字段)。 如果是,可能有人给我一些例子如何将它们保存在List
并使用Anonymous Types
(var)获取它们。
你的问题不是很清楚。 听起来你想要类的给定实例的字段值:
var fieldValues = foo.GetType() .GetFields() .Select(field => field.GetValue(foo)) .ToList();
请注意, fieldValues
是List
。 这里, foo
是您class级的现有实例。
如果您想要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
是你class级的免费精选名字大全。
这将列出类中所有字段的名称(公共和非公共字段,包括静态字段和实例字段):
BindingFlags bindingFlags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static; foreach (FieldInfo field in typeof(TheClass).GetFields(bindingFlags)) { Console.WriteLine(field.Name); }
如果要基于某个对象实例获取字段,请改用GetType
:
foreach (FieldInfo field in theObject.GetType().GetFields(bindingFlags)) { Console.WriteLine(field.Name); }
myClass.GetType().GetProperties()
var fields = whateverYourClassType.GetType().GetFields().Select(f => f.Name).ToList();
问题不完全 – 但是这里是如何从名为“inv”的对象中获取Decimal类型的所有属性的值:
上述就是C#学习教程:如何列出所有类的变量分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
var properties = inv.GetType().GetProperties(); foreach (var prop in properties) { if (prop.ToString().ToLower().Contains("decimal")) { totalDecimal += (Decimal)prop.GetValue(inv, null); } }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1025307.html