ArrayList[] arraylistPath = new ArrayList[3];
            arraylistPath = null;                for (int i = 0; i < this.listView_Detail.Items.Count; i++)
                {
                    
                     arraylistPath[0].Add(this.listView_Detail.Items[i].SubItems[0].Text); --->从这出错
                     arraylistPath[1].Add(this.listView_Detail.Items[i].SubItems[1].Text);
                     arraylistPath[2].Add(this.listView_Detail.Items[i].SubItems[2].Text);                        
                }
请教原因,如果有的解决方法更好,我想把ListView中的值存在一个动态数组中。

解决方案 »

  1.   

               ArrayList arraylistPath = new ArrayList();                 for (int i = 0; i < this.listView_Detail.Items.Count; i++) 
                    { 
                        
                        arraylistPath.Add(this.listView_Detail.Items[i].SubItems[0].Text); 
                           arraylistPath.Add(this.listView_Detail.Items[i].SubItems[1].Text); 
                        arraylistPath.Add(this.listView_Detail.Items[i].SubItems[2].Text);                         
                    } 
      

  2.   

    arraylistPath = null;
    ==
    这句不要,上面才分配过空间
      

  3.   

    ArrayList[] arraylistPath = new ArrayList[3]; //在内存中开辟了三个空间
                arraylistPath = null; //将它设为空,在内存中没有对应的空间
    所以将arraylistPath = null;删除应该就可以了
      

  4.   


       ArrayList arraylistPath = new ArrayList; 
       for (int i = 0; i < this.listView_Detail.Items.Count; i++) 
       { 
         arraylistPath.Add(this.listView_Detail.Items[i].SubItems[0].Text);
         arraylistPath.Add(this.listView_Detail.Items[i].SubItems[1].Text); 
         arraylistPath.Add(this.listView_Detail.Items[i].SubItems[2].Text); 
       } 
      
       读取:
        arraylistPath[0].ToString
        arraylistPath[1].ToString
        arraylistPath[2].ToString
      

  5.   

    看错你的意思
       ArrayList[] arraylistPath = new ArrayList[3]; 
       for (int i = 0; i < this.listView_Detail.Items.Count; i++) 
       { 
         arraylistPath[0].Add(this.listView_Detail.Items[i].SubItems[0].Text);
         arraylistPath[1].Add(this.listView_Detail.Items[i].SubItems[1].Text); 
         arraylistPath[2].Add(this.listView_Detail.Items[i].SubItems[2].Text); 
       }   这样不已经存在3个数组里了么
      

  6.   

    我觉得可能是你的动态数组可能有问题,你的动态数组是不是没有定长度啊?那样好像是不行的.
    试一下吧,
    出错后,先中断,在命令面板里依次看一下
    this.listView_Detail
    this.listView_Detail.Items[0]
    this.listView_Detail.Items[0].SubItems[0]
    是不是null值
    如果问题出在这里你应该能很快找到原因
      

  7.   

    设断点查看下   
    不要那个=NULL了
    上面已经分配了3个空间了!
      

  8.   

    ArrayList[] arraylistPath = new ArrayList[3];
            //arraylistPath = null; <--不要这句了,你一用这句,那 new ArrayList[3] 就等于没写了        for (int i = 0; i < this.listView_Detail.Items.Count; i++) 
            { 
                string[] TempStr = new string[3];
                TempStr[0] = this.listView_Detail.Items[i].SubItems[0].Text;
                TempStr[1] = this.listView_Detail.Items[i].SubItems[1].Text;
                TempStr[2] = this.listView_Detail.Items[i].SubItems[2].Text;
                arraylistPath.Add(TempStr);
            }
            //下面是提取数据
            for (int i = 0; i < this.listView_Detail.Items.Count; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Response.Write(((string[])arraylistPath[i])[j]);
                }
            }
      

  9.   

    ArrayList[] arraylistPath = new ArrayList[3];
                arraylistPath = null; // 这个错误大家已经说了 。                for (int i = 0; i < this.listView_Detail.Items.Count; i++)
                    {
                       
                        arraylistPath[0].Add(this.listView_Detail.Items[i].SubItems[0].Text); --->从这出错
                        arraylistPath[1].Add(this.listView_Detail.Items[i].SubItems[1].Text);
                        arraylistPath[2].Add(this.listView_Detail.Items[i].SubItems[2].Text);                       
                    } 你这个流程有问题啊,即使编译通过,可能给你带来逻辑错误,
    arrayListPath 中始终保存的是 this.listView_Detail 的最后一个Item 的值,即:
    this.listView_Detail.Items[this.listView_Detail.Items.Count - 1];