在循环遍历C#对象属性时检查数组

在循环遍历C#对象属性时检查数组,c#,arrays,loops,oop,C#,Arrays,Loops,Oop,我目前正在循环一个C#对象来解析属性,因为表单构造函数中使用的对象可以有不同的属性 这是我当前的循环 foreach (var media in MediaItem.GetType().GetProperties()) { txtDetails.Text += media.Name + " - " + media.GetValue(MediaItem, null) + "\r\n"; } 它适用于String、Int和Double值,但当它到达一个数组时,它返回System.Strin

我目前正在循环一个C#对象来解析属性,因为表单构造函数中使用的对象可以有不同的属性

这是我当前的循环

foreach (var media in MediaItem.GetType().GetProperties())
{
    txtDetails.Text += media.Name + " - " + media.GetValue(MediaItem, null) + "\r\n";
}
它适用于String、Int和Double值,但当它到达一个数组时,它返回System.String[],而不是值

如何检测值是循环中的数组,然后返回值。我在想一个嵌套的for循环


有什么想法吗?

以下是您可以从以下内容开始:

public static string FormatData(object data)
{
    Array array = data as Array;

    if (array != null) //If this is an array, then join individual values seperated by ", "
    {
        return string.Join(", ", array.Cast<object>());
    }

    return data.ToString(); //otherwise, call ToString
}

对它似乎工作得很好。谢谢你的帮助。
foreach (var media in MediaItem.GetType().GetProperties())
{
    txtDetails.Text += media.Name + " - " + FormatData( media.GetValue(MediaItem, null)) + "\r\n";
}