Joining refers to an operation in which data sources with difficult to follow relationships with each other in a direct way are targeted.
Show Examples
Operator Description C# Query Expression Syntax VB Query Expression Syntax
Join The operator join two sequences on basis of matching keys join … in … on … equals … From x In …, y In … Where x.a = y.a
GroupJoin Join two sequences and group the matching elements join … in … on … equals … into … Group Join … In … On …
Example of Join - Query Expression
using System;
using System.Collections.Generic;
using System.Linq;
namespace Operators
{
class JoinTables
{
class DepartmentClass
{
public int DepartmentId { get; set; }
public string Name { get; set; }
}
class EmployeeClass
{
public int EmployeeId { get; set; }
public string EmployeeName { get; set; }
public int DepartmentId { get; set; }
}
static void Main(string[] args)
{
List<DepartmentClass> departments = new List<DepartmentClass>();
departments.Add(new DepartmentClass { DepartmentId = 1, Name = "Account" });
departments.Add(new DepartmentClass { DepartmentId = 2, Name = "Sales" });
departments.Add(new DepartmentClass { DepartmentId = 3, Name = "Marketing" });
departments.Add(new DepartmentClass { DepartmentId = 4, Name = "Packing" });
departments.Add(new DepartmentClass { DepartmentId = 5, Name = "Store" });
departments.Add(new DepartmentClass { DepartmentId = 6, Name = "HR" });
List<EmployeeClass> employees = new List<EmployeeClass>();
employees.Add(new EmployeeClass { DepartmentId = 1, EmployeeId = 1, EmployeeName = "William" });
employees.Add(new EmployeeClass { DepartmentId = 2, EmployeeId = 2, EmployeeName = "Miley" });
employees.Add(new EmployeeClass { DepartmentId = 2, EmployeeId = 3, EmployeeName = "Benjamin" });
employees.Add(new EmployeeClass { DepartmentId = 3, EmployeeId = 4, EmployeeName = "Mack" });
employees.Add(new EmployeeClass { DepartmentId = 3, EmployeeId = 5, EmployeeName = "Sam" });
employees.Add(new EmployeeClass { DepartmentId = 1, EmployeeId = 6, EmployeeName = "Rock" });
employees.Add(new EmployeeClass { DepartmentId = 1, EmployeeId = 5, EmployeeName = "Sam" });
employees.Add(new EmployeeClass { DepartmentId = 1, EmployeeId = 6, EmployeeName = "Rock" });
var list = (from e in employees
join d in departments on e.DepartmentId equals d.DepartmentId
select new
{
EmployeeName = e.EmployeeName,
DepartmentName = d.Name
});
foreach (var e in list)
{
Console.WriteLine("Employee Name = {0} , Department Name = {1}",
e.EmployeeName, e.DepartmentName);
}
Console.WriteLine("\nPress any key to continue.");
Console.ReadKey();
}
}
}
When the above code of C# or VB is compiled and executed, it produces the following result: