我需要转储数组或对象的内容,我很想知道在C#中我们是否有类似PHP指令var_dump
的内容。
目标是不构建循环来使用数组或对象的每个属性或内容,并使用Console.WriteLine
进行打印。
答案 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));
答案 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