Double Array to Object Array?

跟風遠走 提交于 2019-12-13 16:29:16

问题


I have following 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 }

Series debugging view :

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

When I write following:

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

object_array debugging view : (more than one level)

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

I write following to prevent new level:

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

This is the one of the other solutions. But I think, there may be a better way to do this. Is there a problem for me to use above loop? Or different way?

(I use highcharts. If I give array that contains more than one level, it does not work.)

Thanks.


回答1:


By doing this

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

you are assigning a double array as the first object item of the array object_array. You are actually creating 2D array with one row. You can use something like this:

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);



回答2:


var object_array = Series.Cast<object>().ToArray();



回答3:


Use 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();

The reason why you cannot just cast it to an object[], is that double is a value type, and therefore you have to create a new array containing the boxed double-items.




回答4:


You just assign it, because double is an object.

object[] object_array = Series;


来源:https://stackoverflow.com/questions/13361298/double-array-to-object-array

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!