Si he entendido su objetivo desea especificar una columna en particular y devolver todos sus valores como una conjunto de cadenas
intente estos enfoques a cabo:
int columnIndex = 2; // desired column index
// for loop approach
string[] results = new string[dt.Rows.Count];
for (int index = 0; index < dt.Rows.Count; index++)
{
results[index] = dt.Rows[index][columnIndex].ToString();
}
// LINQ
var result = dt.Rows.Cast<DataRow>()
.Select(row => row[columnIndex].ToString())
.ToArray();
Se podría sustituir columnIndex
con columnName
lugar, por ejemplo:
string columnName = "OrderId";"
EDIT: lo solicitado una matriz de cadenas específicamente, pero en el caso usted es flexible con respecto a los requisitos, preferiría un List<string>
para evitar la necesidad de determinar la longitud de la matriz antes del bucle for en el primer ejemplo y simplemente agregar ite ms a eso. También es una buena oportunidad para usar un bucle Foreach.
me vuelva a grabar el código de la siguiente manera:
List<string> list = new List<string>();
foreach (DataRow row in dt.Rows)
{
list.Add(row[columnIndex].ToString());
}
¿Se puede especificar? Cualquier Datarow tiene la propiedad ItemArray que le devuelve una matriz de objetos en la misma secuencia que las columnas definidas para ella. Convertir los objetos a cadenas sería tan fácil como llamar a ToString() en cada valor, pero tal vez sea algo que quieras ... – flq
Los valores de DataColumn se convertirán en una matriz de cadenas, pero estoy buscando el mejor método para implementar esto. – Ahmed