2012-02-20 11 views
0

私はC#で2d文字列にデータを取ります。 ::C#の2d文字列配列の行に賢くアクセスできない

string[,] strValueBasic = new string[GridView1.Rows.Count,49]; 

として定義され は、今私は、データがでDataRowに入れなければたいとのDataTableにこれらの行を追加します。

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

しかし、私はそれがインデックス[]内部の数が間違ってエラーを与えているステップ

    drRow.ItemArray = strValueBasic[i]; 

に、この2D文字列配列にアクセスすることはできませんよ、私が知っている2

を期待2つのインデックスが必要ですが、その文字列配列の行全体をそのDataRow内に埋めたいと思っています。

また、DataRowとString Arrayの構造も同じです。

答えて

0

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); 
      } 

お知らせiSomeOtherValue、あなたは何かが欠けています!

+0

String [] str = new String [5] {"a"、 "b"、 "c"}; drRow.ItemArray = str; ねえ、これは動作します。 したがって配列または配列の場合 drRow.ItemArray = strValueBasic [i]; これもループで動作するはずです。 – Mimanshu

1

strValueBasicを全体行に割り当てる場合は、string[][]と定義する必要があります。 2D配列ではなく配列の配列。これは初期化も変更されます。各アレイは異なるサイズを持つことができますので、それぞれ別々に作成する必要があります。 http://msdn.microsoft.com/en-us/library/2s05feca.aspx