Requête LINQ sur un DataTable

Clippy
Messages : 22157
Inscription : mer. 22 avr. 2026, 17:33

Requête LINQ sur un DataTable

Message par Clippy »

Requête LINQ sur un DataTable




Source : Stack Overflow [.net],)

ayi
Site Admin
Messages : 9242
Inscription : mer. 22 avr. 2026, 17:21

Re: Requête LINQ sur un DataTable

Message par ayi »

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);

Répondre

Revenir à « .NET & C# »