我在 VB 中有一些代码,我需要将其转换为等效的 C#。我不确定我写的代码是否在做我想做的事情。我希望能够将 2D 数组提取到 datagridview 中,反之亦然,将 datagridview 表的内容移动到 2D 数组中。
下面是我尝试转换的VB和我试过的C#
如何在 VB 中完成:
Dim RMold
Lnum = 25 'Not actually how Lnum is being set but to keep things simple, setting to 25 here.
RMold= Sheets(S1).Range(Sheets(S1).Cells(11, 1), Sheets(S1).Cells(Lnum, 14)).Value
在 C# 中:
int[,] RMold;
int Lnum = 25;
RMold = new int[Lnum, 14];
for(int n = 11; n <= Lnum; n++) {
for(int o = 1; o <= 14; o++) {
RMold[n, o].ToString() = RMdatagridview.Rows[n].Cells[o].ToString();
}
}
我没有像在 VB 中那样将 excel 工作表存储在数组中,而是在 C# 中将 datagridview 表存储在数组中作为一种等效代码。
反之亦然(将二维数组提取到数据网格视图中):
在 VB 中:
'Setting Cnum and StartColumn = 10 to keep things simple here.
Cnum = 10
StartColumn = 10
Sheets(S1).Range(Sheets(S1).Cells(1, StartColumn), Sheets(S1).Cells(Lnum * Cnum, StartColumn + 2)).Value = PMarray
我的C#:
int[,] PMarray;
PMarray = new int [Lnum*Cnum, (StartColumn + 2) - StartColumn + 1];
for(int l = 0; l < PMarray.GetLength(0); l++) {
int[] PMArr = new int[PMarray.GetLength(1)];
for(int m = 0; m < PMarray.GetLength(1); m++) {
PMArr[m] = PMarray[l, m];
}
MBIC_dgv.Rows.Add(PMArr); //I get the feeling this isn't quite right
}
这是正确的还是我遗漏了什么?