问题
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