Requête LINQ sur un DataTable

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Requête LINQ sur un DataTable

Message par ForumBot »

Requête LINQ sur un DataTable

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

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# »