C#中的PHP var_dump转储数组或对象?

时间:2014-05-23 08:55:23

标签: c#

我需要转储数组或对象的内容,我很想知道在C#中我们是否有类似PHP指令var_dump的内容。

目标是不构建循环来使用数组或对象的每个属性或内容,并使用Console.WriteLine进行打印。

4 个答案:

答案 0 :(得分:14)

最接近的可能是string.Join

Console.WriteLine(string.Join(", ", myEnumOfObjects));

它不会自动将“数组或对象的每个属性或内容”自动包含在输出中 - 如果您希望这样做,则需要覆盖正在打印的对象的ToString方法:

class MyObject {
    public string Name {get;set;}
    public DateTime Dob {get;set;}
    public override string ToString() {
        return string.Format("{0} - {1}", Name, Dob);
    }
}

答案 1 :(得分:3)

插入断点时,只需将鼠标悬停在阵列上即可轻松查看数据的内容。

或其中任何一个:

您可能正在使用Console.WriteLine来打印数组。

int[] array = new int[] { 1, 2, 3 };
foreach(var item in array)
{
    Console.WriteLine(item.ToString());
}

如果您不希望将每个项目放在单独的行上,请使用Console.Write:

int[] array = new int[] { 1, 2, 3 };
foreach(var item in array)
{
    Console.Write(item.ToString());
}

或string.Join(在.NET Framework 4或更高版本中):

int[] array = new int[] { 1, 2, 3 };
Console.WriteLine(string.Join(",", array));

来自这个问题:How to print contents of array horizontally?

答案 2 :(得分:3)

我认为没有直接相当于var_dump php函数。

您必须使用反射来编写等效函数。

如果您在网上搜索,您可以轻松找到执行此操作的代码。

例如:http://ruuddottech.blogspot.fr/2009/07/php-vardump-method-for-c.html

答案 3 :(得分:1)

我知道你想要避免循环,但如果它只是为了编写多行代码,下面是一个单行循环,可以让你用单行打印数据对象扩展ForEach方法

List<string> strings=new List<string>{"a","b","c"};//declare one

strings.ForEach(x => Console.WriteLine(x));//single line loop...for printing and is easier to write