”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > C# LINQ内连接两个DataTable方法

C# LINQ内连接两个DataTable方法

发布于2025-04-13
浏览:870

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

使用C# LINQ进行DataTable内连接

内连接根据公共键将来自两个DataTable的行组合起来。这对于合并来自不同表的信息或根据特定条件筛选数据等任务非常有用。

假设我们有两个DataTable,T1和T2,字段如下:

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

我们需要创建一个联合表TJ,包含以下字段:

  • TJ (CustID, ColX, ColY, ColZ)

使用LINQ,我们可以对CustID列执行内连接:

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"]
              };

此查询生成一个匿名对象的序列,其中包含连接的列。然后,我们可以遍历结果并将它们输出到控制台:

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));
}

这段代码将产生以下输出:

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
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3