LINQ Inner Join

LINQ Inner Join في C#

في الدرس ده هنتعلم إزاي نستخدم Inner Join في LINQ لربط البيانات بين جدولين (Collections) بناءً على مفتاح مشترك.



تعريف الكائنات:


public class Student
{
    public int StudentID { get; set; }
    public string StudentName { get; set; }
    public int StandardID { get; set; }
}

public class Standard
{
    public int StandardID { get; set; }
    public string StandardName { get; set; }
}


البيانات:


List<Student> studentList = new List<Student>()
{
    new Student() { StudentID = 1, StudentName = "John", StandardID = 1 },
    new Student() { StudentID = 2, StudentName = "Moin", StandardID = 1 },
    new Student() { StudentID = 3, StudentName = "Bill", StandardID = 2 },
    new Student() { StudentID = 4, StudentName = "Ram", StandardID = 2 },
    new Student() { StudentID = 5, StudentName = "Ron", StandardID = 3 }
};

List<Standard> standardList = new List<Standard>()
{
    new Standard(){ StandardID = 1, StandardName = "Standard 1"},
    new Standard(){ StandardID = 2, StandardName = "Standard 2"},
    new Standard(){ StandardID = 3, StandardName = "Standard 3"},
    new Standard(){ StandardID = 4, StandardName = "Standard 4"}
};


Inner Join باستخدام Query Syntax:


var innerJoin = from student in studentList
                join standard in standardList
                on student.StandardID equals standard.StandardID
                select new
                {
                    StudentName = student.StudentName,
                    StandardName = standard.StandardName
                };


النتيجة:


StudentName = John, StandardName = Standard 1  
StudentName = Moin, StandardName = Standard 1  
StudentName = Bill, StandardName = Standard 2  
StudentName = Ram, StandardName = Standard 2  
StudentName = Ron, StandardName = Standard 3


Inner Join باستخدام Method Syntax:


var innerJoin = studentList.Join(standardList,
                                 student => student.StandardID,
                                 standard => standard.StandardID,
                                 (student, standard) => new
                                 {
                                     StudentName = student.StudentName,
                                     StandardName = standard.StandardName
                                 });


ملاحظات مهمة:

  • Inner Join بيعرض بس العناصر اللي ليها تطابق في المجموعتين.
  • لو فيه عنصر في students مالوش standard مطابق → مش هيظهر في النتيجة.
  • في Query Syntax بنستخدم equals مش ==.


تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework