Sobes.tech
Middle

Ποια είναι η διαφορά μεταξύ των μεθόδων FirstOrDefault και SingleOrDefault;

sobes.tech AI

Απάντηση από AI

Το FirstOrDefault() επιστρέφει το πρώτο στοιχείο της ακολουθίας που ικανοποιεί την προϋπόθεση, ή μια προεπιλεγμένη τιμή (null για αναφορικούς τύπους, 0 για αριθμητικούς τύπους) αν τέτοια στοιχεία δεν υπάρχουν.
Το SingleOrDefault() επιστρέφει το μοναδικό στοιχείο της ακολουθίας που ικανοποιεί την προϋπόθεση, ή μια προεπιλεγμένη τιμή αν τέτοια στοιχεία δεν υπάρχουν. Αν υπάρχουν περισσότερα από ένα, ρίχνεται εξαίρεση InvalidOperationException.

Χαρακτηριστικό FirstOrDefault SingleOrDefault
Βρέθηκαν 1+ στοιχεία Επιστρέφει το πρώτο Ρίχνει εξαίρεση
Δεν βρέθηκαν στοιχεία Επιστρέφει την προεπιλεγμένη τιμή Επιστρέφει την προεπιλεγμένη τιμή
Αναμενόμενος αριθμός Μηδέν ή περισσότερα Ακριβώς ένα
// Παράδειγμα χρήσης του FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber θα είναι 2
var nonExistent = numbers.FirstOrDefault(n => n > 10);   // nonExistent θα είναι 0

// Παράδειγμα χρήσης του SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result θα είναι 7

var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue θα είναι 0

var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Αυτή η γραμμή θα ρίξει InvalidOperationException