如何遍历类的子属性?

时间:2012-07-04 13:50:36

标签: c# list loops reflection properties

我有一个客户端类,其中一个属性是Emails,它是一个字符串列表。我可以循环遍历类的属性来输出值,但是当它到达Emails属性时,它不会遍历电子邮件,因为它需要在列表中执行另一个循环。

foreach (PropertyInfo prop in oClient.GetType().GetProperties())
{
    if (prop.Name.ToUpper().ToString() == "EMAILS")
    {
        //need code to loop through emails
    }
    else
    {
        Response.Write("<b>" + prop.Name.ToString() + "</b>: " + prop.GetValue(oClient, null) + "<br />");
    }
}

1 个答案:

答案 0 :(得分:2)

您可以使用

阅读电子邮件的值
Object emails = prop.GetValue(oClient, null);

然后迭代,例如

IEnumerable<String> emailsEnumerable = emails as IEnumerable<String>;
if (emailsEnumerable != null) {
    foreach(string emailValue in emailsEnumerable) {
        // ...
    }
}