Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环实现问题的C#交错数组_C#_For Loop_Jagged Arrays - Fatal编程技术网

循环实现问题的C#交错数组

循环实现问题的C#交错数组,c#,for-loop,jagged-arrays,C#,For Loop,Jagged Arrays,我找不到如何使用for循环实现交错数组。我已经尝试过了,但是只有最后一个较小的数组变成了锯齿数组项 string[][] allSheets = new string[size][]; 我是这样申报的。下面是我如何获得allSheets[number]元素的 public string[] get_Sheets(int colNum) { CellReference[] cr = new CellReference[rows_.Length]; ISheet sheet = w

我找不到如何使用for循环实现交错数组。我已经尝试过了,但是只有最后一个较小的数组变成了锯齿数组项

string[][] allSheets = new string[size][];
我是这样申报的。下面是我如何获得allSheets[number]元素的

public string[] get_Sheets(int colNum)
{
    CellReference[] cr = new CellReference[rows_.Length];
    ISheet sheet = wb.GetSheetAt(0);
    IRow[] row = new IRow[rows_.Length];
    ICell[] cell = new ICell[rows_.Length];
    string[] cellResult = new string[rows_.Length];
    for (int i = 0; i < cr.Length; i++)
    {
        cr[i] = new CellReference(rows_[i] + colNum);
        row[i] = sheet.GetRow(cr[i].Row);
        cell[i] = row[i].GetCell(cr[i].Col);
        cellResult[i] = cell[i].ToString();
    }
    return cellResult;
} 
public string[]获取表单(int colNum)
{
CellReference[]cr=新的CellReference[行长度];
ISHET sheet=wb.GetSheetAt(0);
IRow[]行=新IRow[行长度];
ICell[]单元格=新ICell[行长度];
string[]cellResult=新字符串[行长度];
对于(int i=0;i
我的两个for循环如下所示:

for (int ii = 0; ii < size; ii++)
{
    for (int jj = 2; jj < size; jj++)
    {
        allSheets[ii] = get_Sheets(jj);

    }
}
for(int ii=0;ii
注意我是如何用2开始的
jj
。我不得不这么做,因为excel文件就是这样工作的。。
您可以清楚地看到,尽管如此,我的every
allSheets[ii]
将成为for循环中最后一个可能的j数。我试图交换循环,所以
I
首先启动,但结果是一样的

我认为应该只使用一个循环,因为这里只迭代主数组。您不必在此级别上处理2个维度。第二个循环(用于其他维度)已在
get\u Sheets

for (int ii = 0; ii < size; ii++)
{
    allSheets[ii] = get_Sheets(ii + 2);
}

它可以工作,但是jj超出了大小,它不应该比sizeOkay大,但是
allSheets
get_Sheets
中的索引范围必须具有相同的大小。或者让
所有工作表
大于工作表的大小有意义吗?也许
大小
应该更小?或者,如果希望在
所有工作表的末尾留出空白,则将循环条件更改为
ii
for (int ii = 0, jj = 2; ii < size; ii++, jj++)
{
    allSheets[ii] = get_Sheets(jj);
}