动态枚举 List<T> 中的字段
Dynamically enumerate fields from List<T>
我正在使用以下方法枚举我的 类-
的字段
EnumerateFields(typeof(Student));
void EnumerateFields(Type type)
{
PropertyInfo[] props = type.GetProperties();
foreach (PropertyInfo prp in props)
{
}
}
效果很好。
现在我想从 List<> 执行相同的任务。伪代码-
EnumerateFields(List<Student>);
void EnumerateFields(List<T>)
{
}
有什么办法吗?
如果您确定要传入 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
}
}
我假设你想要这样的东西:
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));
}
}
}
我正在使用以下方法枚举我的 类-
的字段EnumerateFields(typeof(Student));
void EnumerateFields(Type type)
{
PropertyInfo[] props = type.GetProperties();
foreach (PropertyInfo prp in props)
{
}
}
效果很好。
现在我想从 List<> 执行相同的任务。伪代码-
EnumerateFields(List<Student>);
void EnumerateFields(List<T>)
{
}
有什么办法吗?
如果您确定要传入 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
}
}
我假设你想要这样的东西:
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));
}
}
}