【问题标题】:System.Int32[] displaying instead of Array elements [duplicate]System.Int32 [] 显示而不是数组元素 [重复]
【发布时间】:2013-08-04 17:31:32
【问题描述】:

我正在尝试显示数组元素,但总是得到这个输出 System.Int32[] 而不是整数元素。

using System.IO;
using System;

class Test
{
    public static void Main()
    {
        int[] arr=new int [26];
        for(int i = 0; i < 26; i++)
        arr[i] = i;

        Console.WriteLine("Array line : "+arr);
    }
}

【问题讨论】:

标签: c# arrays


【解决方案1】:

你可以使用string.Join

 Console.WriteLine("Array line : "+ string.Join(",", arr));

【讨论】:

    【解决方案2】:

    您需要遍历内容并打印它们 -

    Console.WriteLine("Array line: ");
    for(int i=0;i<26;i++)
    {
         arr[i]=i;
         Console.WriteLine(" " + arr[i]);
    }
    

    简单地打印arr 将在数组和print its type 上调用ToString()

    【讨论】:

      【解决方案3】:

      打印数组将调用数组的ToString() 方法,并打印默认行为的类名。为了克服这个问题,我们通常会覆盖类的ToString 函数。

      根据此处的讨论we can not override Array.ToString() 而不是List 可能会有所帮助。

      已经提出了简单直接的解决方案,但我希望通过将功能嵌入Extension Methods(框架 3.5 或更高版本)让您的生活更加轻松:

      public static class MyExtension
      {
          public static string ArrayToString(this Array arr)
          {
              List<object> lst = new List<object>();
              object[] obj = new object[arr.Length];
              Array.Copy(arr, obj, arr.Length);
      
              lst.AddRange(obj);
              return string.Join(",", lst.ToArray());
          }
      }
      

      在你的命名空间中添加上面的代码并像这样使用它:(示例代码)

      float[] arr = new float[26];
      for (int i = 0; i < 26; i++)
          arr[i] = Convert.ToSingle(i + 0.5);
      
      string str = arr.ArrayToString();
      Debug.Print(str);  // See output window
      

      希望你会发现它很有帮助。

      注意:由于类型为object,它应该适用于所有数据类型。我已经对其中几个进行了测试

      【讨论】:

        【解决方案4】:

        你遇到这个问题是因为你的线路

        Console.WriteLine("Array line : "+arr);
        

        实际上是在打印type of arr。如果要打印元素值,则应使用索引号来打印值,例如

        Console.WriteLine("Array line : "+arr[0]);
        

        【讨论】:

          猜你喜欢
          • 2021-01-01
          • 2013-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-22
          • 2018-10-12
          • 2020-02-25
          • 1970-01-01
          相关资源
          最近更新 更多