无法将类型为“ArrayList”的对象强制转换为类型“System.String[,]”,ArrayList是二维数组public void WriteText(StreamWriter streamWriter, ref ArrayList dim2valueList)
{
for (int i = 0; i < dim2valueList.Count;i++ )
{
string[,] dim2Value = (string[,])dim2valueList[i];//报错,
{
for (int i = 0; i < dim2valueList.Count;i++ )
{
string[,] dim2Value = (string[,])dim2valueList[i];//报错,
我要是的二维的ArrayList
按照
int[][] arr={{11,12},{21,22}};
ArrayList arraylist = new ArrayList();
for(int i=0;i<arr.size();++i)
{
ArrayList temp= new ArrayList();
arraylist.add(temp);
for(int j=0;j<arr[i].size();++j)
{
temp.add(arr[i][j]);
}
}
得到的
但是
将ArrayList转化为string[,]时,
for (int i = 0; i < dim2valueList.Count;i++ )
{
string[,] dim2Value = (string[,])dim2valueList[i];//报错,无法将类型为“System.Collections.ArrayList”的对象强制转换为类型“System.String[,]”。
谢谢
string[6,3]
string[3,6]
string[2,9]
string[9,2]ArrayList是没法替你做出这个判断的。它很可怜的,它没法知道你要选择上面的哪一种排列。
你好,你QQ多少,通过短信息发给我,我把截图给你看看,看看ArrayList存储的二维数组的方式,有人说ArrayList存储的二维数组有问题,所以无法转换为string[,]
谢谢
你是指ArrayList的每个元素指向一个数组?这是可以的。因为ArrayList存储的元素都可以视作object。
// 这段是准备一个ArrayList
int[] e1 = new int[] {1,2};
int[] e2 = new int[] {3,4};
ArrayList arraylist = new ArrayList();
arraylist.Add(e1);
arraylist.Add(e2);// 取出作为ArrayList中第二个元素的数组中的第二个元素
int j = ((int[])(arraylist[1]))[1];
Console.WriteLine(j);结果:
4
那为什么不能转化为string[,]