Bien que les données dans .NET soient faciles à utiliser et populaires, l'exécution de la requête LINQ dessus peut rencontrer des défis inattendus. Cet article explorera ces restrictions et fournira des directives progressives pour vous aider à utiliser LINQ avec succès pour interroger les données.
La raison de la défaillance de la requête LINQ sur DataTables directement
Contrairement à la requête LINQ attendue, n'est pas autorisée directement à la collection DataTable Rows. En effet Par conséquent, le code suivant échouera:
Solution: utilisez la méthode d'expansion asenumable ()
<code class="language-csharp">var results = from myRow in myDataTable where results.Field("RowNo") == 1 select results;</code>
pour permettre à LINQ de s'interroger.
schéma alternatif d'expression de lambda
<code class="language-csharp">var results = from myRow in myDataTable.AsEnumerable() where myRow.Field<int>("RowNo") == 1 select myRow;</code>
Convertissez le résultat en DataTable (facultatif)
si vous en avez besoin, vous pouvez utiliser la méthode d'extension copyTodataTable () pour convertir l'iénumeration
Resultation à DataTable:<code class="language-csharp">var result = myDataTable .AsEnumerable() .Where(myRow => myRow.Field<int>("RowNo") == 1);</code>
Autres précautions
N'oubliez pas d'ajouter System.Data.DataSeTextexensions à la référence de votre projet. De plus, veuillez noter que Asenumerable () renvoie ienumeration
<code class="language-csharp">var dataTableResult = result.CopyToDataTable();</code>
En suivant ces directives, vous pouvez effectuer efficacement les requêtes LINQ sur les données pour publier les fonctionnalités puissantes de LINQ dans les tâches de fonctionnement et d'analyse 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!