2

我有以下数组:

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 }

系列调试视图:

> Series
--> [0]
--> [1]
--> ...
--> [10]
--> [11]

当我写以下内容时:

object[] object_array = new object[] { Series }

object_array 调试视图:(不止一层)

> object_array
--> [0]
----> [0]
----> [1]
----> ...
----> [10]
----> [11]

我写以下内容以防止新级别:

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

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

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

谢谢。

4

4 回答 4

7
var object_array = Series.Cast<object>().ToArray();
于 2012-11-13T13:10:17.180 回答
4

使用 LINQ:

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[] seriesAsAbjectArray = series.Cast<object>().ToArray();

不能将其转换为object[], 的原因是它double是一种值类型,因此您必须创建一个包含boxed double -items 的新数组。

于 2012-11-13T13:11:15.567 回答
4

通过做这个

object[] object_array = new object[] { Series }

您正在分配一个双精度数组作为数组 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);
于 2012-11-13T13:14:13.240 回答
-2

您只需分配它,因为它double是一个object.

object[] object_array = Series;
于 2012-11-13T13:10:20.157 回答