Middle
What is the difference between the methods FirstOrDefault and SingleOrDefault?
sobes.tech AI
Answer from AI
FirstOrDefault() returns the first element of a sequence that satisfies a condition, or a default value (null for reference types, 0 for numeric types) if no such element exists. SingleOrDefault() returns the only element of a sequence that satisfies a condition, or a default value if no such element exists. If more than one element exists, an InvalidOperationException is thrown.
| Feature | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Found 1+ elements | Returns the first | Throws an exception |
| No elements found | Returns default value | Returns default value |
| Expected count | Zero or more | Exactly one |
// Example of using FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber will be 2
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent will be 0
// Example of using SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result will be 7
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue will be 0
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // This line will throw InvalidOperationException