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

本文关键字:检查 数组 循环 对象 属性 | 更新日期: 2023-09-27 18:25:49

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

这是我当前的环路

foreach (var media in MediaItem.GetType().GetProperties())
{
    txtDetails.Text += media.Name + " - " + media.GetValue(MediaItem, null) + "'r'n";
}

它适用于String、Int和Double值,但当它到达一个数组时,它返回System.String[],而不是值。

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

有什么想法吗?

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

您可以从以下内容开始:

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";
}