【问题标题】:PHP var_dump in C# to dump array or objects? [duplicate]C# 中的 PHP var_dump 转储数组或对象? [复制]
【发布时间】:2018-03-16 17:58:42
【问题描述】:

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

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

【问题讨论】:

  • 您不想使用Visual Studio 内置的检查工具?喜欢快速手表吗?
  • 你可以用JsonConvert.SerializeObject(myVar)将它序列化为JSON字符串

标签: c#


【解决方案1】:

最接近的可能是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);
    }
}

【讨论】:

    【解决方案2】:

    我认为没有直接等效的 var_dump php 函数。

    你必须使用反射来编写一个等效的函数。

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

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

    【讨论】:

      【解决方案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?

      【讨论】:

      • 这个想法是不要只使用循环一条指令并直接在控制台中打印它
      • @David 看最后一个。
      • 我没有看到它是真的,我的想法是我需要看到插入到 SESSION 中的键和值
      • @David 我认为您应该只使用 forloop。你为什么不想呢?
      • 因为我希望它像 var_dump 这样简单的一行,Console.WriteLine(string.Join(",", array));,对我有好处
      【解决方案4】:

      我知道你想避免循环,但如果它只是为了编写多行代码,下面是一个单行循环,可以让你用单行打印数据对象扩展 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
      

      【讨论】:

      • var_dump 可以打印一个对象的任何值...类,整数,任何...。只需使用 vardump(object_variable),其思想就是不进行循环
      猜你喜欢
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 2012-05-08
      • 1970-01-01
      相关资源
      最近更新 更多