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مش==.
تعليقات
إرسال تعليق