.NET 的 DataTable.AsEnumerable().Join 使用说明
时间: 2024-04-24 14:26:22 浏览: 271
asp.net中DataTable的用法
5星 · 资源好评率100%
DataTable.AsEnumerable() 是将 DataTable 转换为可枚举的数据集合。Join 是 LINQ 中的操作符,用于将两个数据集合按照指定的条件进行连接。
使用 DataTable.AsEnumerable().Join,你需要提供以下参数:
1. 第一个参数:要连接的第二个数据集合。
2. 第二个参数:连接条件,指定如何将两个数据集合中的元素进行匹配。
3. 第三个参数:结果选择器,指定如何选择连接后生成的结果。
下面是一个示例代码,演示了如何使用 DataTable.AsEnumerable().Join:
```csharp
// 创建两个 DataTable
DataTable table1 = new DataTable("Table1");
table1.Columns.Add("Id", typeof(int));
table1.Columns.Add("Name", typeof(string));
DataTable table2 = new DataTable("Table2");
table2.Columns.Add("Id", typeof(int));
table2.Columns.Add("Age", typeof(int));
// 向两个 DataTable 添加数据
table1.Rows.Add(1, "John");
table1.Rows.Add(2, "Emma");
table1.Rows.Add(3, "Michael");
table2.Rows.Add(1, 25);
table2.Rows.Add(2, 30);
table2.Rows.Add(4, 35);
// 使用 DataTable.AsEnumerable().Join 进行连接操作
var query = table1.AsEnumerable()
.Join(table2.AsEnumerable(),
row1 => row1.Field<int>("Id"),
row2 => row2.Field<int>("Id"),
(row1, row2) => new
{
Id = row1.Field<int>("Id"),
Name = row1.Field<string>("Name"),
Age = row2.Field<int>("Age")
});
// 输出连接结果
foreach (var result in query)
{
Console.WriteLine($"Id: {result.Id}, Name: {result.Name}, Age: {result.Age}");
}
```
在上面的示例中,我们创建了两个 DataTable(table1 和 table2),并向它们分别添加了一些数据。然后,使用 DataTable.AsEnumerable().Join 将它们连接起来。连接条件是两个数据集合的 "Id" 列相等。结果选择器选择了连接后生成的结果对象,包含了 "Id"、"Name" 以及 "Age" 列的值。最后,我们遍历连接结果,并输出每个结果对象的值。
希望这个示例对你有帮助!如有任何疑问,请随时提问。
阅读全文