इनर जॉइन . के साथ परिणाम सेट में केवल मिलान करने वाले तत्व शामिल हैं। मेल न खाने वाले तत्वों को परिणाम सेट से बाहर रखा गया है।
बाएं बाहरी जॉइन के साथ सभी मिलान करने वाले तत्व + बाएं संग्रह के सभी गैर-मिलान तत्व परिणाम सेट में शामिल हैं।
आइए एक उदाहरण के साथ लेफ्ट आउटर जॉइन को लागू करने को समझते हैं। निम्नलिखित विभाग और कर्मचारी वर्गों पर विचार करें। ध्यान दें कि, कर्मचारी मैरी के पास कोई विभाग नियत नहीं है। एक इनर जॉइन में उसका रिकॉर्ड परिणाम सेट में शामिल नहीं होगा, जबकि एक लेफ्ट आउटर जॉइन होगा।
उदाहरण
static class Program{ static void Main(string[] args){ var result = Employee.GetAllEmployees() .GroupJoin(Department.GetAllDepartments(), e => e.DepartmentID, d => d.ID, (emp, depts) => new { emp, depts }) .SelectMany(z => z.depts.DefaultIfEmpty(), (a, b) => new{ EmployeeName = a.emp.Name, DepartmentName = b == null ? "No Department" : b.Name }); foreach (var v in result){ Console.WriteLine(" " + v.EmployeeName + "\t" + v.DepartmentName); } } } public class Department{ public int ID { get; set; } public string Name { get; set; } public static List<Department> GetAllDepartments(){ return new List<Department>(){ new Department { ID = 1, Name = "IT"}, new Department { ID = 2, Name = "HR"}, }; } } public class Employee{ public int ID { get; set; } public string Name { get; set; } public int DepartmentID { get; set; } public static List<Employee> GetAllEmployees(){ return new List<Employee>(){ new Employee { ID = 1, Name = "Mark", DepartmentID = 1 }, new Employee { ID = 2, Name = "Steve", DepartmentID = 2 }, new Employee { ID = 3, Name = "Ben", DepartmentID = 1 }, new Employee { ID = 4, Name = "Philip", DepartmentID = 1 }, new Employee { ID = 5, Name = "Mary" } }; } }