我正在使用以下方法枚举我的类的字段 -
EnumerateFields(typeof(Student));
void EnumerateFields(Type type)
{
PropertyInfo[] props = type.GetProperties();
foreach (PropertyInfo prp in props)
{
}
}
效果很好。
现在我想从List<>中执行相同的任务。伪代码 -
EnumerateFields(List<Student>);
void EnumerateFields(List<T>)
{
}
有什么办法吗?
答案 0 :(得分:2)
我认为你想要这样的东西:
void EnumerateFields<T>(List<T> input)
{
PropertyInfo[] props = typeof(T).GetProperties();
foreach (var r in input)
{
foreach (PropertyInfo prp in props)
{
Console.WriteLine(prp.Name + " = " + prp.GetValue(r));
}
}
}
答案 1 :(得分:0)
如果您确定,您已经通过了List<T>
,则仍然可以获得T
的属性:
private void EnumerateFields(Type type)
{
Type subType = type.GetGenericArguments()[0];
PropertyInfo[] props = subType.GetProperties();
foreach (PropertyInfo prp in props)
{
// your logic here
}
}