2012-01-19 9 views
5

¿Existe una manera fácil de convertir una tabla de datos a una matriz de cadenas multidimensional?Tabla de datos a matriz multidimensional

¿Quizás usando LINQ?

Tiene que haber una manera mejor que un bucle de forma manual a través de todas las columnas/filas ...

+1

Existe un buen motivo para realizar bucles, consulte http://stackoverflow.com/questions/8918157/how-do-i-convert-a-resultset-in-a-list-of-hashtable/8918431#8918431 –

+0

don ' ¿Crees que recorrerá todos los registros durante la conversión? – rerun

Respuesta

4

LINQ es la respuesta. Puede convertir un DataTable en IEnumerable usando el método AsEnumerable. Luego, el ToArray() lo convierte en una matriz.

var tableEnumerable = DataTableName.AsEnumerable(); 
tableArray = tableEnumerable.ToArray(); 
+2

lo siento, nunca he usado LINQ antes. Me sale este error 'No se puede convertir implícitamente el tipo 'System.Data.DataRow []' en 'string [*, *]'' Cualquier ayuda sería muy apreciada. – Greg

+0

¿Está recibiendo ese error en la línea que le di? En caso afirmativo, puede dividirlo en partes diferentes (enumerable = DataTable.asenumerable(); tablearray = enumerable.toarray();) y ver si todavía reacciona de la misma manera. –

+0

@Greg Estoy obteniendo el mismo error, incluso con esta división en varias líneas. ¿Alguna vez lo resolvió? – Rachel

0

tratar dt.Rows.Cast(). Seleccione (// DataRow para cuerdas)

4

yourTable.AsEnumerable(). Seleccione (fila => row.ItemArray) .ToArray()

+0

vea mi comentario en la respuesta anterior - http://stackoverflow.com/a/8932997/585552 – Greg

Cuestiones relacionadas