Requête LINQ sur un DataTable
Vous ne pouvez pas interroger la collection Rows du DataTable, car DataRowCollection n’implémente pas IEnumerable<T>. Vous devez utiliser l’extension AsEnumerable() pour DataTable. Comme ceci :
var results = from myRow in myDataTable.AsEnumerable()
where myRow.Field<int>("RowNo") == 1
select myRow;
Et comme le dit @Keith, vous devrez ajouter une référence à System.Data.DataSetExtensions
AsEnumerable() retourne IEnumerable<DataRow>. Si vous devez convertir IEnumerable<DataRow> en DataTable, utilisez l’extension CopyToDataTable().
Ci-dessous, la requête avec une expression Lambda :
var result = myDataTable
.AsEnumerable()
.Where(myRow => myRow.Field<int>("RowNo") == 1);