<p>Vous ne pouvez pas interroger la collection <em>Rows</em> du <code>DataTable</code>, car <code>DataRowCollection</code> n’implémente pas <code>IEnumerable<T></code>. Vous devez utiliser l’extension <code>AsEnumerable()</code> pour <code>DataTable</code>. Comme ceci :</p>
<pre><code class="lang-auto">var results = from myRow in myDataTable.AsEnumerable()
where myRow.Field<int>("RowNo") == 1
select myRow;
</code></pre>
<p>Et comme le dit <a href="https://stackoverflow.com/a/10893/5519709">@Keith</a>, vous devrez ajouter une référence à <a href="http://msdn.microsoft.com/en-us/library/system.data.datarowextensions.aspx">System.Data.DataSetExtensions</a></p>
<p><code>AsEnumerable()</code> retourne <code>IEnumerable<DataRow></code>. Si vous devez convertir <code>IEnumerable<DataRow></code> en <code>DataTable</code>, utilisez l’extension <code>CopyToDataTable()</code>.</p>
<p>Ci-dessous, la requête avec une expression Lambda :</p>
<pre><code class="lang-auto">var result = myDataTable
.AsEnumerable()
.Where(myRow => myRow.Field<int>("RowNo") == 1);
</code></pre>