我不知道主题的标题是否正确,但这就是我想要的。
假设我有一个班级,而它又可以有另一个班级,依此类推。
我想要的是获得类的字段,最终在 List 泛型中,具有多个级别。
例如,假设我有这个:
class address
{
public string street;
public string number;
}
class Student
{
public string name;
public string surname;
public address addr;
}
例如,我需要一个方法
Student s;
getItems(s);
这将返回一个列表,其中将包含:姓名、姓氏和另一个包含街道和号码的列表。
我试过这个:
public void getItems(Object o, List<object> list)
{
FieldInfo[] f = new FieldInfo[o.GetType().GetFields().Length];
f = o.GetType().GetFields();
foreach (FieldInfo fi in f)
{
if (fi.GetType().GetFields().Length > 0)
{
List<object> newList = new List<object>();
list.Add(newList);
getItems(fi, newList);
}
else
{
list.Add(fi.Name);
}
}
}
但它只能达到第一级。第一个参数是我要分解的对象,第二个参数是返回类的列表对象。你们能帮帮我吗?谢谢。