Heim >Backend-Entwicklung >C++ >Wie kann man mit LINQ effizient zwei Datentabellen in C# verbinden?

Wie kann man mit LINQ effizient zwei Datentabellen in C# verbinden?

Linda Hamilton
Linda HamiltonOriginal
2025-01-12 17:43:45118Durchsuche

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

Verwenden Sie LINQ, um DataTable effizient zu verbinden

Angenommen, es gibt zwei Datentabellen, T1 bzw. T2, mit den folgenden Feldern:

<code>T1(CustID, ColX, ColY)

T2(CustID, ColZ)</code>

Um effizient eine kombinierte DataTable „TJ“ mit den Feldern „CustID“, „ColX“, „ColY“ und „ColZ“ in C# zu erhalten, können Sie die folgende LINQ-Lösung verwenden:

<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>

Dieser Code zeigt, wie man mit LINQ einen inneren Join zwischen zwei DataTables erstellt. Es erstellt zwei DataTables, füllt sie mit Beispieldaten (der Datenfüllteil wird hier weggelassen) und verwendet dann eine LINQ-Abfrage, um den Join-Vorgang durchzuführen. Die Ergebnisse der Verbindung werden in der Konsole angezeigt (der Teil zur Ergebnisanzeige entfällt hier ebenfalls). Bitte beachten Sie, dass für die vollständige Funktion ein zusätzlicher Datenfüll- und Ergebnisanzeigecode erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie kann man mit LINQ effizient zwei Datentabellen in C# verbinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn