LINQ内部联接

本文概述

在LINQ中, 内部联接用于根据指定条件仅返回集合中匹配的记录或元素。

LINQ内部联接的语法

这是使用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)
        {
   /* create an object of the class 'department' and create a 
    list of the department with the added record*/
            List<Department> Dept = new List<Department>
    (){
    new Department{DepId=1, DepName="Software"}, new Department{DepId=2, DepName="Finance"}, new Department{DepId=3, DepName="Health"}
    };
    /* create an object of the class 'Employee' and create a
    list of the Employee with the added record*/
    List<Employee>Emp = new List<Employee>
    ()
    {
    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 query apply to fetch the information of the
    employee name and department name
    here we mapped the employee with the department and store the result in the variable '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 loop traverse all the data in the result variable and store in item variable
    foreach (var item in result)
    {
   /* Console.WriteLine(item.EmployeeName + "\t | " + item.DepartmentName)
    will print the name of the employee and name of the department*/
    Console.WriteLine(item.EmployeeName + "\t | " + item.DepartmentName);
    }
    Console.ReadLine();
    }
    }
    //Create class 'Department' and 'Employee' and set the variable name
    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内部联接

从上面的示例中, 我们从两个集合(我们将雇员与部门映射)中获取了雇员名称和部门名称。


微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?