En lugar de usar un ArrayList
, le recomendaría usar una colección fuertemente tipada porque un ArrayList
no aportaría mucho valor en comparación con un DataTable
sin tipeo fuerte. Por lo que podría empezar por definir un modelo que representará a cada fila:
public class MyModel
{
public int Id { get; set; }
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
continuación, un bucle sobre su DataTable
y llenar la colección:
List<MyModel> models = new List<MyModel>();
foreach (DataRow row in dt.Rows)
{
MyModel model = new MyModel
{
Id = (int)row[0],
Prop1 = (string)row[1],
Prop2 = (string)row[2]
};
models.Add(model);
}
O usted podría utilizar LINQ, si lo prefiere:
List<MyModel> models = dt.Rows
.Cast<DataRow>()
.Select(row => new MyModel {
Id = (int)row[0],
Prop1 = (string)row[1],
Prop2 = (string)row[2]
})
.ToList();
todas las columnas contener cadenas? – thelost
sí (uno es booleano) pero se usará como "verdadero" "falso" –
[¡No lo hagas!] (Http://stackoverflow.com/questions/434414/what-is-the-most-evil -code-you-have-seen-in-a-production-enterprise-environm/434562 # 434562) –