У меня есть следующий код:
public class MyClass
{
object field1;
object field2;
}
///////
List<MyClass> lst = new List<MyClass>();
GetLstMember(lst, "field1");
///////
List<object> GetLstMember(List<Object> lst, string memberName)
{
List<object> rezult = new List<object>();
for(int i=0; i<lst.Count; i++)
{
rezult.Add(lst[i].GetType().InvokeMember(
memberName,
BindingFlag.GetProperty,
null,
lst[i],
null);
}
return rezult;
}
Есть ли другой способ написать метод GetLstMember
без использования отражения? Я пытался использовать BindingSource
безуспешно:
BindingSource bs = new BindingSource(lst, memberName);
return bs.List;
Хорошо, я понимаю, чтобы использовать отражение. Есть ли разница в производительности в таком коде и предыдущем:
List<object> GetLstMember(List<Object> lst, string memberName)
{
List<object> rezult = new List<object>();
for (int i = 0; i < lst.Count; i++)
rezult.Add(lst[i].GetType().GetProperty(memberName).GetValue(lst[i],null)**);
return rezult;
}