我正在尝试显示数组元素但始终获取此输出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);
}
}
答案 0 :(得分:10)
您可以使用string.Join
Console.WriteLine("Array line : "+ string.Join(",", arr));
答案 1 :(得分:6)
您需要遍历内容并打印它们 -
Console.WriteLine("Array line: ");
for(int i=0;i<26;i++)
{
arr[i]=i;
Console.WriteLine(" " + arr[i]);
}
只需打印arr
即可在数组和ToString()
上调用print its type
。
答案 2 :(得分:2)
打印数组将调用数组的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
,它应该适用于所有数据类型。我已经对其中的一些进行了测试
答案 3 :(得分:1)
您遇到此问题,因为您的行
Console.WriteLine("Array line : "+arr);
实际上正在打印type of arr
。如果要打印元素值,则应使用索引号打印值,如
Console.WriteLine("Array line : "+arr[0]);