无涯教程-LINQ - Inner Join(内联接)

73 阅读2分钟

在LINQ中,INTERNAL JOIN用于根据指定条件从集合中仅返回匹配的记录或元素。

LINQ INTERNAL JOIN的语法

下面是使用LINQ内部联接根据指定条件从集合中获取元素的语法。

var result = from d in objDept  
join e in objEmp  
on d.DepId equals e.DeptId  
select new  
{  
EmployeeName = e.Name,  
DepartmentName = d.DepName  
};  

从上面的语法中,无涯教程试图根据匹配的“DeptId”列值从“objEmp”,“objDept”集合中获取元素。

LINQ内联接示例

下面是使用LINQ内部联接根据指定条件从集合中获取元素的示例。

C#代码

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1 { class Programme2 { static void Main(string[] args) { /* 创建一个“Department”类的对象并创建一个添加记录的部门列表*/ List Dept = new List (){ new Department{DepId=1,DepName="Software"}, new Department{DepId=2,DepName="Finance"}, new Department{DepId=3,DepName="Health"} }; /* 创建一个“Employee”类的对象并创建一个 添加记录的员工列表*/ ListEmp = new List () { new Employee { EmpId=1,Name = "Akshay Tyagi", DeptId=1 }, new Employee { EmpId=2,Name = "Vaishali Tyagi", DeptId=1 }, new Employee { EmpId=3,Name = "Arpita Rai", DeptId=2 }, new Employee { EmpId=4,Name = "Sateesh Alavala", DeptId =2}, new Employee { EmpId=5,Name = "Madhav Sai"} }; /Linq 查询申请获取的信息 员工姓名和部门名称 在这里,无涯教程将员工与部门映射并将结果存储在变量“result”中/ var result = from d in Dept join e in Emp on d.DepId equals e.DeptId select new { EmployeeName = e.Name, DepartmentName = d.DepName }; //foreach 循环遍历 result 变量中的所有数据并存储在 item 变量中 foreach (var item in result) { /* Console.WriteLine(item.EmployeeName + "\t | " + item.DepartmentName) 将打印员工姓名和部门名称*/ Console.WriteLine(item.EmployeeName + "\t | " + item.DepartmentName); } Console.ReadLine(); } } //创建类 Department 和 Employee 并设置变量名 class Department { public int DepId { get; set; } public string DepName { get; set; } } class Employee { public int EmpId { get; set; } public string Name { get; set; } public int DeptId { get; set; } } }

输出:

LINQ Inner Join

从上面的示例中,无涯教程从映射员工与部门的两个集合中获取员工姓名和部门名称。

参考链接

www.learnfk.com/linq/linq-i…