First و FirstOrDefault في LINQ
LINQ First() و FirstOrDefault()
في هذا الدرس، سنتعلّم الفرق بين دالتي First
و FirstOrDefault
في LINQ، وكيفية استخدام كل واحدة منهما.
ما الفرق بين First و FirstOrDefault؟
الدالة | ترجع أول عنصر؟ | لو القائمة فاضية | لو ما فيش عنصر يحقق الشرط |
---|---|---|---|
First() |
✅ | ❌ Exception | ❌ Exception |
FirstOrDefault() |
✅ | ✅ default | ✅ default |
مثال عملي:
List<int> numbers = new List<int>() { 10, 20, 30, 40 };
// First
int first = numbers.First(); // 10
// FirstOrDefault
int firstOrDefault = numbers.FirstOrDefault(); // 10
لو القائمة فاضية:
List<int> emptyList = new List<int>();
int result1 = emptyList.First(); // Exception
int result2 = emptyList.FirstOrDefault(); // 0
استخدام شرط مع First:
int result = numbers.First(n => n > 20); // 30
ولو ما فيش نتيجة:
int result = numbers.FirstOrDefault(n => n > 50); // 0
مثال باستخدام كائنات:
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
}
List<Student> students = new List<Student>()
{
new Student() { ID = 1, Name = "John" },
new Student() { ID = 2, Name = "Sara" },
};
Student student = students.FirstOrDefault(s => s.ID == 3);
if (student == null)
Console.WriteLine("No matching student");
else
Console.WriteLine(student.Name);
ملاحظات:
- استخدم
First()
فقط لو كنت متأكد إن فيه عنصر هيرجع. - استخدم
FirstOrDefault()
لو فيه احتمال تكون النتيجة فاضية. - في المشاريع الواقعية، يفضل دائمًا
FirstOrDefault()
لتفادي الاستثناءات.
تعليقات
إرسال تعليق