打印一个数组将调用数组的ToString()
方法,它会打印类的名称,这是默认行为。为了克服这个问题,我们通常会覆盖ToString
类的功能。
根据这里的讨论,我们不能覆盖 Array.ToString()反而List
会有所帮助。
已经提出了简单直接的解决方案,但我希望通过将功能嵌入扩展方法(框架 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
希望你会发现它很有帮助。
注意:由于 type ,它应该适用于所有数据类型object
。我已经对其中几个进行了测试