現在我想從列表<>中執行相同的任務。僞代碼 -
EnumerateFields(List<Student>);
void EnumerateFields(List<T>)
{
}
有什麼辦法可以做到嗎?
現在我想從列表<>中執行相同的任務。僞代碼 -
EnumerateFields(List<Student>);
void EnumerateFields(List<T>)
{
}
有什麼辦法可以做到嗎?
我想你想是這樣的:
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));
}
}
}
如果你確定,你正在傳遞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
}
}
您不是在迭代列表中的項目,而是在走其屬性。 –
是什麼讓你認爲你需要做更多的事情,而不是用'typeof'運算符中的'List'替換'Student'? –
你的意思是列表的屬性?如果是這樣,你只是犯了一個錯字。如果不是,請解釋你想要的。 –