C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Info: FirstOrDefault is invoked 4 times. The first time the method is invoked, it returns the value of the first string element in the List.
And: The second time it is called, it returns null because the "query1" expression returned no elements.
Next: The third usage returns the string literal "Mouse" because that is the first element that matches the "where" clause in the query.
Finally: The program displays 0 because that is the result of FirstOrDefault when called on an empty integer array.
C# program that uses FirstOrDefault
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
//
// This List has three elements.
//
var list = new List<string>() { "Cat", "Rat", "Mouse" };
Console.WriteLine(list.FirstOrDefault());
//
// This query produces no results so FirstOrDefault is null.
//
var query1 = from element in list
where element.Length > 10
select element;
Console.WriteLine(query1.FirstOrDefault() == null);
//
// This query produces one result, so FirstOrDefault is a string.
//
var query2 = from element in list
where element.Length > 3
select element;
Console.WriteLine(query2.FirstOrDefault());
//
// This array has no elements, so FirstOrDefault is zero.
//
int[] array = new int[0];
Console.WriteLine(array.FirstOrDefault());
}
}
Output
Cat
True
Mouse
0
Tip: You do not need to specify the type parameter because this is inferred during the C# compilation step.
Null: It checks the acting collection for null, and if that is true it returns the result of the default(T) expression.
And: Otherwise, it returns the element at index 0 of the element iterated to first.
Info: The default value for a value type is equal to all zero bits. And the default value for a reference type is the null value.
Default