Maison >développement back-end >C++ >Comment puis-je utiliser LINQ pour interroger efficacement un DataTable?

Comment puis-je utiliser LINQ pour interroger efficacement un DataTable?

Susan Sarandon
Susan Sarandonoriginal
2025-01-30 03:01:14594parcourir

How Can I Use LINQ to Query a DataTable Effectively?

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:

  • Assurez-vous que vous avez ajouté une référence à System.Data.DataSetExtensions dans votre projet à utiliser AsEnumerable().
  • pour convertir le 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn