получить 2d массив из объекта и привязать к GridView - PullRequest
0 голосов
/ 18 июля 2009

У меня есть функция, которая возвращает двумерный массив. В связи с характером программы, я ДОЛЖЕН объявить ее объектом. Как это

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 Ответ

1 голос
/ 18 июля 2009

Если возвращаемый тип функции - объект, но он на самом деле возвращает массив строк, то не можете ли вы просто привести возвращаемое значение?

string[,] array = (string[,]) o1;
...