LINQ Single vs SingleOrDefault vs First vs FirstOrDefault
Many people get confused about the difference between Single, SingleOrDefault, First, and FirstOrDefaultmethods in Linq. Below is a chart explaining the difference between them and examples of each scenario.
Single()
SingleOrDefault()
First()
FirstOrDefault()
Description
Returns a single, specific element of a sequence
Returns a single, specific element of a sequence, or a default value if that element is not found
Returns the first element of a sequence
Returns the first element of a sequence, or a default value if no element is found
Exception thrown when
There are 0 or more than 1 elements in the result
There is more than one element in the result
There are no elements in the result
Only if the source is null (they all do this)
When to use
If exactly 1 element is expected; not 0 or more than 1
When 0 or 1 elements are expected
When more than 1 element is expected and you want only the first
When more than 1 element is expected and you want only the first. Also it is ok for the result to be empty
Examples
First we create an Employee table for querying. We will test with three difference scenarios:
Employeeid = 1: Only one employee with this ID
Firstname = Robert: More than one employee with this name
No comments:
Post a Comment