Mastering requêtes Linq sur les données
La polyvalence de Linq s'étend à diverses sources de données, mais l'interrogation des données nécessite une approche spécifique. L'application directe de LINQ aux lignes d'un DataTable conduit souvent à des erreurs. Par exemple:
<code class="language-c#">var results = from myRow in myDataTable where results.Field("RowNo") == 1 select results;</code>
ce code échouera.
La solution asenumable ()
La clé consiste à utiliser la méthode d'extension AsEnumerable()
. Cela convertit la collection Rows
de DataTable en une IEnumerable<DataRow>
, permettant une intégration LINQ sans faille. L'approche correcte est:
<code class="language-c#">var results = from myRow in myDataTable.AsEnumerable() where myRow.Field<int>("RowNo") == 1 select myRow;</code>
Remarques importantes:
System.Data.DataSetExtensions
dans votre projet à utiliser AsEnumerable()
. IEnumerable<DataRow>
résultant en une données de données, utilisez la méthode d'extension CopyToDataTable()
. LAMBDA Expressions: une approche plus concise
Les expressions de lambda offrent une syntaxe plus compacte:
<code class="language-c#">var result = myDataTable .AsEnumerable() .Where(myRow => myRow.Field<int>("RowNo") == 1);</code>
En utilisant ces méthodes, les développeurs peuvent exploiter la puissance de LINQ pour une manipulation et un filtrage efficaces des données dans leurs applications .NET lors de la travail avec des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!