如何在对象中获取列表? C#

时间:2017-12-12 13:16:49

标签: c# list object ienumerable getproperty

我有object

Object
 Adress - count = 2 - System.Collections.Generic.List<Address>
  [0]   Address
    City - "Text" - string
    State - "Text" - string
  [1]   Address
    City - "Text" - string
    State - "Text" -string
 Notes - "Text" - string
 Items - Type(Item)
  Item - count = 2 - System.Collections.Generic.List<Item>
   [0]  Item
    Name - "Text" - string
    Price - "Text" - string
   [1]  Item
    Name - "Text" - string
    Price - "Text" - string

在这个对象中,Address是所有地址的列表,notes只是对象的另一个字段,items有一个名为item的子项,它包含里面的列表,就像地址一样。

我通过以下代码获得了笔记的价值:

foreach (var item in (object as IEnumerable).Cast<object>().ToList())
                    {
    String substring = item.GetType().GetProperty("Notes").GetValue(item).ToString();
}

这是我从方法传递给List:System.Collections.Generic.List1[Address]

时得到的回报

但是我无法访问列表,我需要在X列表中分隔这个对象,如下所示:

Object2
 Adress
  [0]
  [1]

Object3
 Items
  Item
   [0]
   [1]

然后我可以使用上面的方法得到值,任何建议?我已经尝试了很多方法......

1 个答案:

答案 0 :(得分:1)

只需将Adress属性的值转换为List<Object>,就像这样

foreach (var item in (object as IEnumerable).Cast<object>().ToList())
{
    List<Object> address = item.GetType().GetProperty("Adress").GetValue(item) as List<Object>;
    foreach(var ad in address)
    {
        //do what you want here
    }
}