2012-11-13 3 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를 사용합니다. 좀 더 이상의 수준을 포함 ​​배열을주는 경우에, 그것은 작동하지 않습니다.)

감사합니다. doubleobject 때문에

+0

object_array [0]을 전달하면 여전히 double 배열을 전달하는 것처럼 보입니다. – MrFox

답변

4

. 실제로 한 행을 가진 2D 배열을 만듭니다. 다음과 같이 사용할 수 있습니다 :

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

당신은, 할당합니다.

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. 당신이 배열 object_array의 첫 번째 개체 항목으로 이중 배열을 할당하는이

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

이렇게함으로써