C# 无法在C中按行访问2d字符串数组#

C# 无法在C中按行访问2d字符串数组#,c#,datarow,C#,Datarow,我将数据转换成C#中的2d字符串。 定义为: string[,] strValueBasic = new string[GridView1.Rows.Count,49]; 现在,我希望将数据放入DataRows中,并将这些行添加到DataTable中 for (int i = 0; i < GridView1.Rows.Count; i++) { DataRow drRow = dtNew.NewRow()

我将数据转换成C#中的2d字符串。 定义为:

string[,] strValueBasic = new string[GridView1.Rows.Count,49];
现在,我希望将数据放入DataRows中,并将这些行添加到DataTable中

     for (int i = 0; i < GridView1.Rows.Count; i++)
                {
                    DataRow drRow = dtNew.NewRow();
                    drRow.ItemArray = strValueBasic[i];
                    dtNew.Rows.Add(drRow);
                }
它给出的错误是[]内的索引数错误,预计为2

我知道它需要2个索引,但我希望字符串数组的整行都填充在DataRow中


数据行和字符串数组的结构也是相同的。

这是因为
strValueBasic
是一个2D数组,您试图访问它,因为它是一个1D数组

 for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                DataRow drRow = dtNew.NewRow();
                drRow.ItemArray = strValueBasic[i, iSomeOtherValue];
                dtNew.Rows.Add(drRow);
            }
for(int i=0;i

请注意,您缺少了一些内容

如果要分配整行,则应将
strValueBasic
定义为
string[][]
。不是二维数组,而是数组的数组。这也改变了初始化,每个数组可以有不同的大小,所以您必须分别创建每个数组

String[]str=新字符串[5]{“a”、“b”、“c”};drRow.ItemArray=str;嘿,这有用。因此,对于数组或数组drRow.ItemArray=strValueBasic[i];这也应该在一个循环中工作。
 for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                DataRow drRow = dtNew.NewRow();
                drRow.ItemArray = strValueBasic[i, iSomeOtherValue];
                dtNew.Rows.Add(drRow);
            }