2017-09-27 7 views
0

多次元配列にデータを追加しようとしていますが、エラーが発生し続ける:「暗黙のうちに型 'Object [] []'を 'string' [,] ''この問題を解決する方法はありません。私はそれをSOで見つけましたが、彼らの解決策は私を助けませんでした:Datatable to Multidimensional Array成功したデータテーブルから多次元配列を作成しようとしています

ご協力いただければ幸いです。

clDataTable = i_dbExec.ExecSelect(i_strQuery); 
var tableEnumerable = clDataTable.AsEnumerable().Select(row => 
row.ItemArray).ToArray(); 
string[,] o_astrLocationCodes = tableEnumerable.ToArray(); <-- Error here 
+1

なぜあなたは 'var o_astrLocationCodes'を使用してそれを繰り返さないのですか? – hardkoded

+2

1. 'tableEnumerable'はすでに' Array'でなければなりません - それを初期化する式に 'ToArray()'があります。 2.多次元配列は、特定の(通常は数学的な)状況を除いては有用ではありません。あなたがすでに持っている 'object [] []' '配列よりも好ましいと思うのはなぜですか? 3.明らかに、 '.ItemArray'の型は' object [] 'なので、各要素を変換しない限り' string [] 'に変換されません。 – NetMage

+0

あなたが達成しようとしていることについて少し詳しく説明してください。おそらく、より良いアプローチを取る可能性があります。しかし、どのように不適切であるかに関わらず、あなたがしたいことをすることは可能です。 – Cory

答えて

0

これは醜いのですが、私はあなたがこのようにする理由はわかりませんが、私は判断しません。

string[][] stringArray = 
    clDataTable.AsEnumerable() 
    .Select(
     row => row.ItemArray 
     .Select(
      i=>i.ToString() 
     ).ToArray() 
    ).ToArray(); 
0

ありがとうございます@Coryと@NetMageはあなたの答えです。私は多次元配列を持つ既存の関数(私が編集することが許されていなかった)を提供することに制約されていると思ったので、私の質問です。しかし、私は配列を必要としない別の回避策を見つけることができました。私は彼の予約にもかかわらず、私はそれを使用することができたので、解決策としてコーリーの答えをマークします:) :)

関連する問題