2009-07-17 8 views
0

2次元配列を返す関数があります。プログラムの性質上、私はオブジェクトとして宣言しなければなりません。 オブジェクトから2次元配列を取り出し、GridViewにバインドします。

このよう
object o1 = function(x); //note the function returns something similar to this {string[x,y]}; 

最終的に私は、GridViewコントロールにこのデータをバインドします。
配列がの場合、 ...次のメソッドは正常に動作します。

gridView.DataSource = o1; 

gridView.DataBind(); 

多次元配列では機能しません。

私はDataTableの

DataTable dt = new DataTable(); 

dt.Columns.Add("Name", Type.GetType("System.String")); 

dt.Columns.Add("Age", Type.GetType("System.String")); 

dt.Columns.Add("Sex", Type.GetType("System.String")); 

for (int i = 0; i < 5; i++) 
{ 

    dt.Rows.Add(); 

    dt.Rows[dt.Rows.Count - 1]["Name"] = o1[i, 0]; 

    dt.Rows[dt.Rows.Count - 1]["Age"] = o1[i, 1]; 

    dt.Rows[dt.Rows.Count - 1]["Sex"] = o1[i, 2]; 

} 

GridMultiD.DataSource = dt; 

GridMultiD.DataBind(); 

に文字列の配列をオンにするには、次のコードを使用することになり、問題は、オブジェクトが実際には配列ではないことは明らかである...しかし配列が含まれています。それにアクセスすることは可能ですか?私が得るすべてのGoogleヒットは、オブジェクト配列を作成する方法を尋ねる人々です...

状況を簡略化するためのアイデアも大変感謝しています!

-Dave

注:配列は、DCOMサーバーによって 返されている...ので、それはオブジェクトとして返されなければならない...と思う...

答えて

1

の戻り値の型の場合関数はオブジェクトですが、実際には文字列の配列を返しています。次に戻り値を単純にキャストできませんか?

string[,] array = (string[,]) o1; 
+0

ありがとうございます、これを解決しました!私はあなたが何かを配列としてキャストできることを気付かなかった。 :P (私はこれにかなり新しいです) – Dave

関連する問題