【发布时间】:2015-12-14 07:10:18
【问题描述】:
我想访问作为“对象”传入的列表的成员(该函数也处理其他数据类型,例如数组)。不幸的是,虽然这有效:
List<object> objectlist = new List<object> { "1", "2" };
object res = ((List<object>)((object)objectlist))[0];
这不是:
List<string> strlist = new List<string> { "1", "2" };
res = (string)((List<object>)((object)strlist))[0];
虽然它确实适用于数组。
似乎无法将常规列表转换为列表。
正在使用反射(但使用 GetMethods 以避免重复的字符串搜索):
MethodInfo info = ((object)list).GetType().GetMethod("get_Item");
object s1 = (object)info.Invoke(((object)list), new object[] { 0 });
这样做的唯一方法是什么?
【问题讨论】:
标签: c# list object reflection