2011-03-19 11 views
6

tengo una matriz como la siguiente:DataTable de relleno con la matriz

const int dim = 1000; 
    double[,] array = new double[dim, dim]; 

    Random ran = new Random(); 
    for (int r = 0; r < dim; r++) 
     for (int c = 0; c < dim; c++) 
      array[r, c] = (ran.Next(dim)); 

    DataTable dataTable = new DataTable(); 

¿Puedo llenar el dataTable con los datos array?

Respuesta

5

intentar algo como esto:

var dt = new DataTable(); 
//AddColumns 
for (int c = 0; c < dim; c++) 
    dt.Columns.Add(c.ToString(), typeof(double)); 
//LoadData 
for (int r = 0; r < dim; r++) 
    dt.LoadDataRow(arry[r]); 
1

Se tienen que establecer las columnas y luego cargar una fila a la vez usando

DataTable.LoadDataRow() que tiene object[]

Salida el ejemplo de MSDN page.

0

Sí, se puede, pero debe agregar 1000 columnas de la tabla primero como esto:

dataTable.Columns.Add("Column" + c, typeof(double)); 

Sin embargo, la verdadera pregunta es ¿por qué quieres hacer eso. DataTable es una estructura de datos muy ineficaz.

+0

Si es ineficaz, podría sugerir una estructura de datos más eficiente ?? – Pedro77

+0

@ Pedro77 que depende de qué es lo que quieres hacer con eso. –

+3

debe explicar o averiguar por qué es ineficaz. – Timmerz