首頁 >後端開發 >C++ >如何在 C# 中使用 LINQ 高效連接兩個資料表?

如何在 C# 中使用 LINQ 高效連接兩個資料表?

Linda Hamilton
Linda Hamilton原創
2025-01-12 17:43:45120瀏覽

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

利用LINQ高效率連線DataTable

假設有兩個DataTable,分別為T1和T2,欄位如下:

<code>T1(CustID, ColX, ColY)

T2(CustID, ColZ)</code>

為了在C#中有效地取得一個包含"CustID"、"ColX"、"ColY"和"ColZ"欄位的組合DataTable "TJ",可以使用以下LINQ解決方案:

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

這段程式碼示範如何使用LINQ在兩個DataTable之間進行內連線。它創建了兩個DataTable,並用範例資料填充它們(此處省略了資料填充部分),然後使用LINQ查詢進行連接操作。連接的結果將顯示在控制台中(此處也省略了結果顯示部分)。 請注意需要補充資料填充和結果展示的程式碼才能完整運行。

以上是如何在 C# 中使用 LINQ 高效連接兩個資料表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn