Maison >développement back-end >C++ >Comment effectuer une jointure interne de deux DataTables en C# à l'aide de LINQ ?

Comment effectuer une jointure interne de deux DataTables en C# à l'aide de LINQ ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-12 17:21:43839parcourir

How to Perform an Inner Join of Two DataTables in C# using LINQ?

Utilisation de C# LINQ pour la connexion interne DataTable

Les jointures internes combinent les lignes de deux DataTables en fonction d'une clé commune. Ceci est utile pour des tâches telles que la fusion d'informations de différentes tables ou le filtrage de données en fonction de critères spécifiques.

Supposons que nous ayons deux DataTables, T1 et T2, avec les champs suivants :

  • T1(CustID, ColX, ColY)
  • T2(CustID, ColZ)

Nous devons créer une table commune TJ contenant les champs suivants :

  • TJ (CustID, ColX, ColY, ColZ)

En utilisant LINQ, nous pouvons effectuer une jointure interne sur la colonne CustID :

<code class="language-csharp">var results = from table1 in dt1.AsEnumerable()
              join table2 in dt2.AsEnumerable() on (int)table1["CustID"] equals (int)table2["CustID"]
              select new
              {
                  CustID = (int)table1["CustID"],
                  ColX = (int)table1["ColX"],
                  ColY = (int)table1["ColY"],
                  ColZ = (int)table2["ColZ"]
              };</code>

Cette requête génère une séquence d'objets anonymes contenant les colonnes concaténées. Nous pouvons ensuite parcourir les résultats et les afficher sur la console :

<code class="language-csharp">foreach (var item in results)
{
    Console.WriteLine(String.Format("ID = {0}, ColX = {1}, ColY = {2}, ColZ = {3}", item.CustID, item.ColX, item.ColY, item.ColZ));
}</code>

Ce code produira le résultat suivant :

<code>ID = 1, ColX = 11, ColY = 21, ColZ = 31
ID = 2, ColX = 12, ColY = 22, ColZ = 32
ID = 3, ColX = 13, ColY = 23, ColZ = 33
ID = 4, ColX = 14, ColY = 24, ColZ = 34
ID = 5, ColX = 15, ColY = 25, ColZ = 35</code>

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