双数组到对象数组?

Ali*_*hşi 2 c# casting

我有以下数组:

double[] Series = new double[] { 7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6 }
Run Code Online (Sandbox Code Playgroud)

系列调试视图:

> Series
--> [0]
--> [1]
--> ...
--> [10]
--> [11]
Run Code Online (Sandbox Code Playgroud)

当我写下面的内容时:

object[] object_array = new object[] { Series }
Run Code Online (Sandbox Code Playgroud)

object_array调试视图:(多个级别)

> object_array
--> [0]
----> [0]
----> [1]
----> ...
----> [10]
----> [11]
Run Code Online (Sandbox Code Playgroud)

我写下以防止新的水平:

object[] object_array = new object[Series.Length];
for (int i = 0; i < Series.Length; i++)
{
    object_array[i] = Series[i];
}
Run Code Online (Sandbox Code Playgroud)

这是其他解决方案之一.但我认为,可能有更好的方法来做到这一点.我使用上面的循环是否有问题?还是不同的方式?

(我使用highcharts.如果我给出包含多个级别的数组,它就不起作用.)

谢谢.

Ere*_*mez 7

var object_array = Series.Cast<object>().ToArray();
Run Code Online (Sandbox Code Playgroud)


Nik*_*vic 5

通过做这个

object[] object_array = new object[] { Series }
Run Code Online (Sandbox Code Playgroud)

您正在将双精度数组指定为数组 object_array 的第一个对象项。您实际上正在创建一行的二维数组。你可以使用这样的东西:

double[] Series = new double[] { 7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6 };
object[] object_array = new object[Series.Length];
Series.CopyTo(object_array, 0);
Run Code Online (Sandbox Code Playgroud)