C# 向一个二维数组添加2个ArrayList

C# 向一个二维数组添加2个ArrayList,c#,arrays,arraylist,C#,Arrays,Arraylist,我试图将两个ArrayList添加到二维数组中,但遇到了一个问题。如果我手动填充数组(如下面代码中的array arr1所示),并将此数组绑定到图表,则图表将按预期显示。但是,当我使用for循环将两个ArrayList添加到数组中并将此数组绑定到图表时,它不会按预期显示 我的代码: DateTime date1 = new DateTime(2012, 10, 1); DateTime date2 = new DateTime(2012, 11, 2); DateTime date3 = new

我试图将两个ArrayList添加到二维数组中,但遇到了一个问题。如果我手动填充数组(如下面代码中的array arr1所示),并将此数组绑定到图表,则图表将按预期显示。但是,当我使用for循环将两个ArrayList添加到数组中并将此数组绑定到图表时,它不会按预期显示

我的代码:

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();
DateTime date1=新的DateTime(2012,10,1);
DateTime date2=新的日期时间(2012,11,2);
DateTime date3=新的日期时间(2012,12,3);
DateTime date4=新的日期时间(2013,01,4);
DateTime date5=新的日期时间(2013,02,8);
//创建时间数组列表
ArrayList al1=新的ArrayList();
al1.添加(日期1);
al1.添加(日期2);
al1.添加(日期3);
al1.添加(日期4);
al1.添加(日期5);
int1=9;
int2=15;
int3=20;
int4=13;
int5=17;
//创建int数组列表
ArrayList al2=新的ArrayList();
al2.Add(int1);
al2.Add(int2);
al2.Add(int3);
al2.Add(int4);
al2.Add(int5);
//二维阵列测试器
Object[,]arr1=新对象[,]{date1,int1},{date2,int2},{date3,int3},{date4,int4},{date5,int5};
//创建二维阵列
Object[,]arr=新对象[2,al2.Count];

对于(int k=0;k您的循环创建了一个不同的数组,因为您混淆了维度。请这样做:

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];
}
Object[,]arr=新对象[al2.Count,2];
for(int k=0;k
你也可以尝试一个
列表
并从那里填充你的2D数组,或者如果日期是唯一的,一个
字典
以及这两个结果是什么。预期的结果和实际的结果是什么?预期的结果是一个时间与int的折线图,{1/10/2012,9}{2/11/2012,15}等等},这就是我使用arr1数组时得到的结果。使用arr数组时得到的结果只是图上的两个点,{1/1/1970,15},{30/09/2012,131581440000}看看。除非你在.Net 2.0之前被卡住了,否则不要使用
ArrayList
,如果“HighCharts”只接受多维
ArrayList
,不要使用“HighCharts”。您还可以检查al1.Count==al2.Count,否则它可能会引发异常。@fabigler他在代码中手动填充它们,它们怎么会有不同的大小?即使他没有,如果有,其他地方也有错误。然后修复它。