如果用ArrayList类就不会有这样的问题

解决方案 »

  1.   

    c或c++可以访问array[array.Length]
    但是在c#中如果你这样写的话也会返回象你这样的错误!
      

  2.   

    最好做充分的测试
    然后再函数代码中,进行try,如果出现outofrange异常,抛出...
      

  3.   

    ArrayList 没有Length 属性数组不超标是不会出现这种错误的
      

  4.   

    在本地调试小批量的数据的时候并没有发现错误,程序没有发现逻辑错误,
      string[] userids = file.Split({'r'});
      for(int i=1;i<userids.Length;i++)
      {
        if(userids[i] == "" ) continue;
        userids[i] = userids[i].Trim();     
        ...
      }
    这样有问题吗?
      

  5.   

    to: HNU(為楚有材,於我為盛!) 
    ArrayList有Count属性,获取 ArrayList 中实际包含的元素数。
      

  6.   

    要是用ArrayList的话
      ArrayList list = new ArrayList();
      char[] split = {'\r'};
      list.Add(file.Split(split));
      list[0] //我好取不到这个值
      

  7.   

    要是用ArrayList的话
      ArrayList list = new ArrayList();
      char[] split = {'\r'};
      list.Add(file.Split(split));
      list[0] //我好取不到这个值
    ------------------------------------------
     
      实验了半天这个样子就可以取到了
      string[] userids=(string[])list[0];
      但我不知道这样和直接放到一个定义好的字符数组中有什么区别?
      string[] userids = file.Split({'r'});
      这样放进去在取出来就可以避免索引超出界限的错误吗?
      我感觉是反而增加了转换的开销。
      虽然没有找到自己错误的地方,不过今天学习了一些关于ArrayList的东西还是很开心。
      

  8.   

    在本地调试小批量的数据的时候并没有发现错误,程序没有发现逻辑错误,
      string[] userids = file.Split({'r'});
      for(int i=1;i<userids.Length;i++)
      {
        if(userids[i] == "" ) continue;
        userids[i] = userids[i].Trim();     
        ...
      }
    这样有问题吗?
    =======================》
    楼主用r分隔得到的数组是不是为null;
      string[] userids = file.Split({'r'});
      for(int i=0;i<userids.Length;i++)
      {
        if(userids[i] == "" )
           continue;
        userids[i] = userids[i].Trim();     
        ...
      }
      

  9.   

    分隔得到的数组不会是null,即使是null
       for(int i=0;i<userids.Length;i++)
       在这一步会提示未将对象引用设置到对象的事例。