本帖最后由 kudincha 于 2012-02-22 14:52:41 编辑

解决方案 »

  1.   

    drss[0]为null了
    dataList[i].Add(float.Parse(drss[0].ToString())); 
    ->
    dataList[i].Add(Convert.ToSingle(drss[0])); 
      

  2.   

    重新调试后,出现的问题是:索引超出范围。dataList[0]为什么不能继续添加数据到List呢?
      

  3.   

    调试出错信息:“dataList[0]”引发了“System.ArgumentOutOfRangeException”类型的异常
      

  4.   

    for(int i=0;i<43;i++)
    {
       sql="select * from table";
       cmd=new sqlcommand(sql,myconn);
       dr=cmd.ExecuteReader();
       while(dr.Read())
       {
          if(dataList[i] == null){ dataList[i] = new List<float>(); }
           dataList[i].Add(float.Parse(dr[0].ToString())); 
       }
    }
      

  5.   

    仍然是索引超出范围,dataList.count=0
      

  6.   

    List<List<float>> dataList = new List<List<float>>(43);
    这之后每一个List<float>,就是dataList[i],使用前是不是也需要先new?
      

  7.   

    虽然定义了public static List<List<float>> dataList = new List<List<float>>(43);
    但是调试中发现问题不是出在dataList[i]是否有分配空间(即dataList[i]=new List<float>();)
    错误在于dataList[0]就超出索引范围,难道是List<List<float>> dataList = new List<List<float>>(43);没有给dataList分配43个空间?
      

  8.   

    楼主!差点被你忽悠!List<List<float>> dataList = new List<List<float>>(43);你这个是什么啊?这又不是数组!你这个 43 是 capacity 啊!又不是元素个数!
    你应该循环添加 43 次 new List<float>!真的很别扭,为什么不用 float[][] 锯齿数组,或者 List<float>[] dataList = new List<float>[43] 也行啊。
      

  9.   

    最后用了一个临时TMPlist问题解决!谢谢大家!