Difference between SingleOrDefault and firstorDefault
Answers (2)
Add AnswerSingleOrDefault:
If you want an exception to be thrown if the result set contains many records, use SingleOrDefault.
It returns the default value for the type when your result set returns 0 records.
It throws an exception if your result set returns many records.
FirstOrDefault:
If you always want 1 record no matter what the result set contains, use FirstOrDefault.
It returns the default value for the type when your result set returns 0 records.
It returns the first record if your result set returns many records.
-- SingleOrDefault()
returns the default value for the type (e.g. default for int is 0)
-
List<int> items = new List<int>() {10,20,30,40,50}; //Throw the exception after satisfied the condition more than one elements int result = items.Where(item => item == 10).SingleOrDefault();
-- FirstOrDefault()
- that is returns the default value for the type
List<int> items = new List<int>() {10,20,30,40,50}; //Throw the no exception after satisfied the condition more than one elements. int result = items.Where(item => item == 10).FirstOrDefault ();