Saltar al contenido

¿Cómo obtener una lista de valores de una columna de DataTable?

No dudes en divulgar nuestro espacio y códigos con tus amigos, necesitamos de tu ayuda para hacer crecer esta comunidad.

Solución:

Puede usar Linq para DataTable:

var ids = dt.AsEnumerable().Select(r => r.Field("id")).ToList();

ACTUALIZACIÓN: Sin Linq

List ids = new List(dt.Rows.Count);
foreach(DataRow row in dt.Rows)
    ids.Add((int)row["id"]);

Nota para la eficiencia es mejor usar row[index] en vez de row[columnName]. El primero solo obtiene columna por índice de las columnas array. Este último obtiene el índice de columna del diccionario interno que asigna nombres a índices, y solo luego obtiene columna por índice.

Otra cosa a tener en cuenta es la inicialización de la capacidad de la lista con el recuento de filas. Si no vas a hacer esto, entonces interno array de la lista se volverá a crear y se copiará muchas veces (depende del número de filas).

Y lo último que hay que decir: la forma más eficiente con una tabla enorme (si es posible) es filtrar datos en el lado del servidor.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *