Au lieu d'utiliser un ArrayList
je vous recommande d'utiliser une collection fortement typée car un ArrayList
n'apporterait pas beaucoup de valeur par rapport à un DataTable
non fortement typé. Ainsi, vous pouvez commencer par définir un modèle qui représentera chaque ligne:
public class MyModel
{
public int Id { get; set; }
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
boucle puis sur votre DataTable
et remplir la collection:
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);
}
Ou vous pouvez utiliser LINQ si vous préférez:
List<MyModel> models = dt.Rows
.Cast<DataRow>()
.Select(row => new MyModel {
Id = (int)row[0],
Prop1 = (string)row[1],
Prop2 = (string)row[2]
})
.ToList();
toutes les colonnes contenir des chaînes? – thelost
oui (un est booléen) mais il sera utilisé comme "vrai" "faux" –
[Ne le faites pas!] (Http://stackoverflow.com/questions/434414/what-is-the-most-evil -code-vous-avez-jamais-vu-dans-un-environnement-de-production-production/434562 # 434562) –