C#迭代2d数组

Val*_*lip 0 c# arrays

我是以下数组:
在此输入图像描述

我需要输出如下值:

"API Docs Portal : op-api-docs"
"Big Ideas : op-bigideas"
"Education : op-education"
....
Run Code Online (Sandbox Code Playgroud)

我尝试了一些东西,但它没有按预期工作......

        for (var x = 1; x <= reportValue.GetLength(0); x++)
        {
            for (var y = 1; y <= reportValue.GetLength(1); y++)
            {
                if (reportValue[x, y] != null)
                {
                    var id = reportValue[x, y];
                    var name = reportValue[x, y + 1];
                    var result = name + " : " + id;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

注意:
这是我获取reportValue数组的方式(使用C#Interop):

    var reportLast = ws.Range["A" + ws.Rows.Count].End(Excel.XlDirection.xlUp).Row;
    var rngReport = (Excel.Range)ws.Range[ws.Cells[2, 1], ws.Cells[reportLast, 2]];
    var reportValue = rngReport.Cells.Value;
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

目前尚不清楚为什么你这里有两个循环.你总是希望每行有两个相同的元素 - 索引1和索引2.所以你只需要:

for (var x = 1; x <= reportValue.GetLength(0); x++)
{
    var id = reportValue[x, 1];
    var name = reportValue[x, 2];
    var result = name + " : " + id;
    // Use result
}
Run Code Online (Sandbox Code Playgroud)

这将获取[1, 1] : [1, 2],然后[2, 1] : [2, 2],再[3, 1] : [3, 2]等等-这看起来像它正是你需要的.