如何访问泛型对象中的列表



我有一个包含对象列表的通用对象,我想访问它。通过使用

object sourceValue = new List<tab> {new tab()};
PropertyInfo[] sourcePropertyInfo = sourceValue.GetType().GetProperties();
//First field of PropertyInfo is the list, second is a Raw instance
object result = sourcePropertyInfo[0].GetValue(sourceValue, null);

其中tab对象看起来像这样:

public partial class tab
{
    public long TabId { get; set; }
    public string Title { get; set; }
}

这里我想通过result变量访问列表,但结果是result = 0,这是一个整数。它很可能从列表中获取count属性。我如何访问列表(类型为tab)中的对象中的值?

注意,我不能访问或更改对象sourceValue的类型。

您将获得列表类型的属性,而不是元素类型。

foreach (object element in (sourceValue as IEnumerable ?? Enumerable.Empty<object>()))
{
   var type = element.GetType();
   var props = type.GetProperties();
   object result = props.First().GetValue(element, null);
}

注意:这个可以优化:)

相关内容

  • 没有找到相关文章

最新更新