2012-11-13 45 views
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。如果我給數組,其中包含一個以上的水平,這是行不通的。)

感謝。

+0

似乎它仍然會通過一個雙數組,如果你傳遞object_array [0]。 – MrFox

回答

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

@AliRızaAdıyahşi演員表全錯誤? –

+0

@ErenErsönmez,我很抱歉,我做了語法錯誤。你的代碼也是如此。 –

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

@downvoter請評論。 –

-2

您只需指定它,因爲doubleobject

object[] object_array = Series; 
+1

當我嘗試這樣做時出現錯誤:'不能將類型'double []'隱式轉換爲'object []'' –

+0

這只是隱藏了一個事實,即它是一個雙數組,而不是將其更改爲對象數組。 – MrFox

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是一個值類型,因此,你必須創建一個包含一個新的數組盒裝double -items。