我有以下数组:
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。如果我给的数组包含多个级别,则不起作用。)
感谢。
答案 0 :(得分:7)
var object_array = Series.Cast<object>().ToArray();
答案 1 :(得分: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
是值类型,因此您必须创建一个包含<的新数组em>盒装 double
- 项目。
答案 2 :(得分:4)
通过这样做
object[] object_array = new object[] { Series }
您正在将double数组指定为数组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);
答案 3 :(得分:-2)
您只需指定它,因为double
是object
。
object[] object_array = Series;