Arraylist中存放Arraylist可行吗?怎么引用?
DataTable table = new DataTable();
table = ds.Tables[0];
for (int i = 0; i < table.Rows.Count; i++)
{
ArrayList polyline = new ArrayList();
for (int k = 0; k < table.Columns.Count; k++)
{
DataRow row = table.Rows[i];
if (table.Columns[k].ColumnName.Contains("point"))
{
polyline.Add(table.Rows[i][k].ToString());
}
}
point3.Add(polyline);
polyline.Clear();
}
代码如上,问题就是标题描述的,point3本身就是一个Arraylist,而polyline也是一个Arraylist,然后我就不知道该怎么引用了,((Arraylist)point3[0])[0]会提示错误,但是上面的代码不报错,不知道这样到底行不行?
还有第二个问题,point3是全局变量,如果我上面的代码可行,我能不能在其他函数中使用point3中的polyline呢?
------解决方案--------------------point3.Add(polyline);
polyline.Clear();
以上代码有问题:
point3的polyline和外面的polyline是同一个,都被你清空了。
试一下:
point3[0][0]
------解决方案--------------------ArrayList本身也是Object,当然可以了
你这个报错是你自己代码造成的问题
polyline.Clear();
你都clear了。。。怎么还能找到数据呢
你实际每次循环的最终结果就是在point3添加一个空的ArrayList