Maison >développement back-end >C++ >Comment joindre efficacement deux DataTables en C# à l'aide de LINQ ?

Comment joindre efficacement deux DataTables en C# à l'aide de LINQ ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-12 17:43:45204parcourir

How to Efficiently Join Two DataTables in C# Using LINQ?

Utilisez LINQ pour connecter efficacement DataTable

Supposons qu'il existe deux DataTables, T1 et T2 respectivement, avec les champs suivants :

<code>T1(CustID, ColX, ColY)

T2(CustID, ColZ)</code>

Afin d'obtenir efficacement un DataTable "TJ" combiné contenant les champs "CustID", "ColX", "ColY" et "ColZ" en C#, vous pouvez utiliser la solution LINQ suivante :

<code class="language-csharp">DataTable dt1 = new DataTable();
dt1.Columns.Add("CustID", typeof(int));
dt1.Columns.Add("ColX", typeof(int));
dt1.Columns.Add("ColY", typeof(int));

DataTable dt2 = new DataTable();
dt2.Columns.Add("CustID", typeof(int));
dt2.Columns.Add("ColZ", typeof(int));

// ... (此处应添加填充dt1和dt2数据的代码) ...


var query = from table1 in dt1.AsEnumerable()
            join table2 in dt2.AsEnumerable() on table1["CustID"] equals table2["CustID"]
            select new
            {
                CustID = table1["CustID"],
                ColX = table1["ColX"],
                ColY = table1["ColY"],
                ColZ = table2["ColZ"]
            };

DataTable TJ = new DataTable();
TJ.Columns.Add("CustID", typeof(int));
TJ.Columns.Add("ColX", typeof(int));
TJ.Columns.Add("ColY", typeof(int));
TJ.Columns.Add("ColZ", typeof(int));

foreach (var item in query)
{
    TJ.Rows.Add(item.CustID, item.ColX, item.ColY, item.ColZ);
}

// ... (此处应添加显示TJ DataTable内容的代码) ...</code>

Ce code montre comment utiliser LINQ pour effectuer une jointure interne entre deux DataTables. Il crée deux DataTables, les remplit avec des exemples de données (la partie de remplissage des données est omise ici), puis utilise une requête LINQ pour effectuer l'opération de jointure. Les résultats de la connexion seront affichés dans la console (la partie affichage des résultats est également omise ici). Veuillez noter que des données supplémentaires et un code d'affichage des résultats sont nécessaires pour fonctionner pleinement.

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