将一维数组的索引转换为二维数组,即行和列

Aab*_*bha 2 c# arrays winforms

我有一个应用程序,WinForms其内部列表框我插入名称和价格..名称和价格分别存储在二维数组.现在,当我从中选择一条记录时,listbox只给我一个索引,我可以从中获取字符串名称和价格来更新该记录我必须更改该索引的名称和价格,我想要更新二维数组名称和价钱.但所选索引只是一维的.我想将该索引转换为行和列.怎么做?

但我正在这样的列表框中插入记录.

int row = 6, column = 10;
for(int i=0;i<row;i++)
{
    for(int j=0;j<column;j++)
    {
        value= row+" \t "+ column +" \t "+ name[i, j]+" \t " +price[i, j];
        listbox.items.add(value);
    }
}
Run Code Online (Sandbox Code Playgroud)

Sma*_*ker 18

虽然我没有完全理解确切的情况,但在1D和2D坐标之间进行平移的常用方法是:

从2D到1D:

index = x + (y * width)
Run Code Online (Sandbox Code Playgroud)

要么

index = y + (x * height)
Run Code Online (Sandbox Code Playgroud)

取决于您是从左到右还是从上到下阅读.

从1D到2D:

x = index % width
y = index / width 
Run Code Online (Sandbox Code Playgroud)

要么

x = index / height
y = index % height
Run Code Online (Sandbox Code Playgroud)