gpt4 book ai didi

c# - 仅获取和设置类/对象中的 public List<> 成员/字段

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:03 25 4
gpt4 key购买 nike

我有一个对象/类,我想只为它获取任何公共(public) List<> 成员/字段的列表/数组。稍后设置这些成员。

目前我可以获得所有公共(public)字段:

var fieldValues = obj[index].GetType().GetFields(BindingFlags.Instance | BindingFlags.Public);

一些研究表明我可以测试 GetGenericTypeDefinition() == typeof(List<>),但我无法直接针对 fieldValues 中返回的值进行测试。

总而言之,我想获取一个对象的所有公共(public)字段。整理List<>,并设置那些成员。

感谢您提供的任何帮助!

最佳答案

这样的事情怎么样,

var fieldValues = test.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public);

foreach(var fieldValue in fieldValues)
{
if (fieldValue.FieldType.IsGenericType && fieldValue.FieldType.GetGenericTypeDefinition() == typeof(List<>))
{
fieldValue.SetValue(test, new List<string>()
{
"List Item 1",
"List Item 2"
});
}
}

关于c# - 仅获取和设置类/对象中的 public List<> 成员/字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10695420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com