2014-06-19 3 views
0

2 개의 arraylists를 2 차원 배열에 추가하려고합니다.하지만 문제가 생깁니다. 아래 코드에서 배열 arr1로 표시된 배열을 수동으로 채우고이 배열을 차트에 바인딩하면 차트가 예상대로 표시됩니다. 그러나 for 루프를 사용하여 두 arraylists를 배열에 추가하고이 배열을 차트에 바인딩하면 예상대로 표시되지 않습니다.2 개의 arraylists를 하나의 2 차원 배열에 추가하기

내 코드 :

DateTime date1 = new DateTime(2012, 10, 1); 
DateTime date2 = new DateTime(2012, 11, 2); 
DateTime date3 = new DateTime(2012, 12, 3); 
DateTime date4 = new DateTime(2013, 01, 4); 
DateTime date5 = new DateTime(2013, 02, 8); 

//Create time arraylist 
ArrayList al1 = new ArrayList(); 
al1.Add(date1); 
al1.Add(date2); 
al1.Add(date3); 
al1.Add(date4); 
al1.Add(date5); 

int int1 = 9; 
int int2 = 15; 
int int3 = 20; 
int int4 = 13; 
int int5 = 17; 

//Create int arraylist 
ArrayList al2 = new ArrayList(); 
al2.Add(int1); 
al2.Add(int2); 
al2.Add(int3); 
al2.Add(int4); 
al2.Add(int5); 

//Tester 2D array 
Object[,] arr1 = new Object[,] { {date1, int1}, {date2, int2}, {date3, int3}, {date4,int4}, {date5, int5} }; 

//Create 2D array 
Object[,] arr = new Object[2, al2.Count]; 

for (int k = 0; k <al2.Count; k++) 
     { 
      arr[0, k] = al1[k]; 
      arr[1, k] = al2[k]; 
     } 

Data d1 = new Data(arr); 

Series s1 = new Series { Name = "Series 1", Data=d1}; 

DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart"); 

chart.SetXAxis(new XAxis 
{ 
Type = AxisTypes.Datetime 
}); 

chart.SetSeries(s1); 

ltrChart.Text = chart.ToHtmlString(); 

내 문제는 배열에 arraylists의 추가에 함께 또는 그 후에 .NET highcharts 내에서 뭔가?

+0

그리고 무슨 일이 두 결과입니다. 예상되는 것은 무엇이며 실제 결과는 무엇입니까? – Matthijs

+0

예상 결과는 int, {{1/10/2012, 9} {2/11/2012, 15} 등}에 대한 시간의 선 그래프로, arr1 배열을 사용할 때 얻을 수 있습니다. arr 배열을 사용할 때의 결과는 {{1/1/1970, 15}, {30/09/2012, 131581440000}} – DaveMc

+1

그래프의 두 점에 불과합니다. [이 튜토리얼] (http : // www.homeandlearn.co.uk/csharp/csharp_s7p4.html). – Matthijs

답변

1

차원을 섞어서 루프가 다른 배열을 만듭니다. 이런 식 수행

Object[,] arr = new Object[al2.Count, 2]; 

for (int k = 0; k < al2.Count; k++) 
{ 
    arr[k, 0] = al1[k]; 
    arr[k, 1] = al2[k]; 
} 
+0

al1.Count == al2.Count를 확인할 수도 있습니다. 그렇지 않으면 예외가 발생할 수 있습니다. –

+0

@fabigler 코드에서 수동으로 채 웁니다. 어떻게 크기가 다를 수 있습니까? 그리고 그가하지 않았더라도, 그들이한다면, 다른 곳에서 실수가 있습니다. 그 때 그것을 고쳐라. – marsze

0

당신은 또한 List<KeyValuePair<Date,int>>을 시도 할 수 거기에서 2 차원 배열을 채우기를, 또는 날짜가 고유 경우 Dictionary<Date, int>

관련 문제