2010-09-20 46 views
11

Tengo algunos valores en un DataGridRow (matriz de elementos) y quiero buscar todos estos valores en una matriz de cadenas. ¿Cómo puedo conseguir esto?¿Cómo puedo convertir DataRow a string Array?

DataGridRow row = (DataGridRow)Lst.ItemContainerGenerator.ContainerFromIndex(k); 
      DataRowView Drv = (DataRowView)row.Item; 
      DataRow dr = (DataRow)Drv.Row; 
+0

Cuál es el contenido de ustedes filas de datos? La respuesta depende de eso. –

Respuesta

12

Una posibilidad es llamar dr.ItemArray; Esto le dará una object[]. Luego debe lanzar cada objeto al string antes de usarlo.

6
var rowAsString = string.Join(", ", dr.ItemArray.Select(c => c.ToString()).ToArray()); 

Esto debería darle una cadena con cada elemento en su fila de datos separados por una coma.

+2

Solo respuesta aceptable. Otras respuestas arrojarán un error si y del elemento no son tipo de cadena. – nelek

+0

¿Cómo funciona esto? DataRow (dr) no tiene Select (y definitivamente no Selct ;-)) –

+0

:-) Oops! Hubo dos errores tipográficos en la respuesta. Primero, había olvidado acceder a ItemArray y segundo, el nombre del método debería ser Select ;-) –

23
var rowAsString = string.Join(", ", dataTable.Rows[0].ItemArray); 

No es necesario ningún lambda expresion como el anterior.

6

LINQ añade un poco de azúcar:

var stringArray = dr.ItemArray.Cast<string>().ToArray()