Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में LINQ एक्सटेंशन मेथड्स का उपयोग करके लेफ्ट आउटर जॉइन कैसे करें

INNER JOIN में केवल मिलान करने वाले एलिमेंट्स परिणाम सेट में शामिल होते हैं। नॉन-मैचिंग एलिमेंट्स बाहर रह जाते हैं।

LEFT OUTER JOIN में सभी मिलान करने वाले एलिमेंट्स के साथ-साथ बाएं कलेक्शन के सभी नॉन-मैचिंग एलिमेंट्स भी परिणाम सेट में शामिल होते हैं।

उदाहरण: Department और Employee क्लासेस

ध्यान दें कि Employee "Mary" का कोई डिपार्टमेंट असाइन नहीं है। इनर जॉइन उसके रिकॉर्ड को शामिल नहीं करेगा, जबकि लेफ्ट आउटर जॉइन करेगा।

कोड उदाहरण

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" } // कोई डिपार्टमेंट नहीं
        };
    }
}

व्याख्या

  1. GroupJoin - बाएं कलेक्शन (Employee) को दाएं कलेक्शन (Department) के साथ ग्रुप करता है
  2. DefaultIfEmpty() - जब कोई मैच न मिले तो डिफ़ॉल्ट मान (null) प्रदान करता है
  3. SelectMany - परिणाम को फ्लैट करता है और अंतिम ऑब्जेक्ट बनाता है

आउटपुट

Mark    IT
Steve   HR
Ben     IT
Philip  IT
Mary    No Department
  1. - Python में MySQL का उपयोग करके दो टेबल पर इनर जॉइन करना

    हम SQL में दो टेबल को उनके बीच एक सामान्य कॉलम के आधार पर या किसी निर्दिष्ट शर्त के आधार पर जोड़ सकते हैं। दो SQL टेबल को जोड़ने के लिए विभिन्न प्रकार के JOIN उपलब्ध हैं। यहां हम दो टेबल पर INNER JOIN के बारे में चर्चा करेंगे। JOIN और INNER JOIN दोनों एक ही तरह से काम करते हैं। INNER JOIN एक टेबल

  1. - Python का उपयोग करके File Extension कैसे Extract करें?

    File Extension Extract करना आप os.path.splitext Method का उपयोग करके Filename String से File Extension Extract कर सकते हैं। यह Pathname Path को एक Pair (root, ext) में Split करता है जैसे कि root + ext == path, और ext Empty होता है या Period से शुरू होता है और अधिकतम एक Period रखता है। उदाहरण impor

  1. विंडोज़ 11 की समस्याओं को तेजी से ठीक करने के 6 सिद्ध तरीके विंडोज़ 11 की समस्याओं को तेजी से ठीक करने के 6 सिद्ध तरीके

    क्या आप विंडोज़ 11 में अपग्रेड करने के बाद किसी समस्या का सामना कर रहे हैं? विंडोज़ 11 को कैसे मरम्मत करें, इसके तरीके खोज रहे हैं? आप सही जगह पर आए हैं! यदि आप सिस्टम क्रैश, अनुत्तरदायी ऐप्स, या यदि आपका डिवाइस सामान्य से धीमा प्रदर्शन कर रहा है, जैसी किसी भी समस्या का सामना कर रहे हैं, तो आप अपने