還有,我將錯誤部分取消用arrTestCon[iAddNum] =(string)objName[0][3];代替怎麼也有錯
//-不是類型轉換的錯誤,是編譯正確後,將arrTestCon寫入到ini文件測試,其並沒有輸出.但實際上它是有非空值存在的

解决方案 »

  1.   

    >>>1.不規則數組可不可以objName[0][4]這樣訪問?
    可以, as long as you have at least 5 elements2. your code looks confusing, what are the relationships between those array objects, did you initialize iAddNum properly?
      

  2.   

    iAddNum 被初時化了.現整理如下;
    int[] iArrayLength;
    AliasObj = getLeagueNameArray();//該method返回一個數組
    object[][] objName = new object[AliasObj.Length][]; //申請一個不規則數組 
    sTeamNameStr = new object[AliasObj.Length];
    iArrayLength = new int[AliasObj.Length];
    int[] iArrayTeamNum = new int[AliasObj.Length];
    .........................................
    for(int i =0;i<AliasObj.Length;i++ ) {
        
        TeamIDObj = GetTeamsIDArray(AliasObj[i].ToString());//GetTeamsIDArray該mothed返回一個數組
        TeamNameObj = GetTeamsNameArray(TeamIDObj);//GetTeamsNameArray()該也返回個數組
        iArrayLength[i] = TeamNameObj.Length;
        if(iArrayLength[i]>0){
            for(int j=0;j<TeamNameObj.Length;j++) {
        iArrayTeamNum[i] = TeamNameObj.Length;                    objName[i] = new object[TeamNameObj.Length];//給不規則數組的一維確定需要的個數
        objName[i][j] = TeamNameObj[j];  //如果用輸出測試,objName[i][j]所有的值都正確
                 //  write ini file   
                 //......objName[i][j]都正確
             } //end  for (j)
         }//end if   
         else {  objName[i] = new object[1]; 
                 objName[i][0] = "暫無數值"; 
          }//end else
    }//end for (i)
    .................................
    //---以下會出現問題
    string[] arrTestCon = new string[1256];
    int iAddNum=0;
    for(int m=0;m<AliasObj.Length;m++){

        if(iArrayTeamNum[m]>0){
             for(int n =0;n<objName[m].Length;n++) {
                 arrTestCon[iAddNum] =(string)objName[m][n];//------
        iAddNum++; //位置1
    }
    //位置2   
       else {
    arrTestCon[iAddNum] =(string)objName[m][0];
    iAddNum++;
       }
    }
    問題:
    1.黨將iAddNum放在位置2時得到的arrTestCon[iAddNum]數組正確為objName[0][最後一位]..objName[1][最後一位]....objName[m][最後一位]
    黨將iAddNum放在位置1的時候,編譯通過.測的arrTestCon[iAddNum]的所有值為空,但實際上其是有非空數值的.而且,arrTestCon[]的最上限肯定會<1256.
    2.黨我將"//---以下會出現問題"的代碼用
    arrTestCon[iAddNum] =(string)objName[0][0];//or objName[0][5],objName[1][0];(數組肯定在長度範圍內)
    iAddNum++;
    代替還是值為空.為甚麼????
      

  3.   

    沒人能找出原因嗎???是不是我沒說出操作目的代碼理解的麻煩啊?
    以上的目的是:申請個不規則數組objName ,後將不同的數組copy到objName 的每維中.再對objName 逕行操作.
      

  4.   

    iArrayTeamNum[i] = TeamNameObj.Length; 
    objName[i] = new object[TeamNameObj.Length];//給不規則數組的一維確定需要的個數for(int j=0;j<TeamNameObj.Length;j++) {
                objName[i][j] = TeamNameObj[j];  //如果用輸出測試,objName[i][j]所有的值都正確
                 //  write ini file   
                 //......objName[i][j]都正確
             } //end  for (j
      

  5.   

    暈................
    呵呵........偶像!.............謝了,這個都花我好幾個小時了就是沒看出來.呵呵..還以為是不規則數組用錯了............回去好好檢討!!!!!!!!!
    thanks!!!!!