Aggregation
Aggregate, Average, Count, LongCount, Max, Min, Sum
Conversion
AsEnumerable, Cast, OfType, ToArray, ToDictionary, ToList, ToLookup
Element
ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last, LastOrDefault, Single, SingleOrDefault
ElementAt
ElementAtOrDefault
First (simple)
First (conditional)
FirstOrDefault
Last
LastOrDefault (simple)
LastOrDefault (conditional)
Single
SingleOrDefault
Generation
DefaultIfEmpty, Empty, Range, Repeat
Grouping
GroupBy
Join
GroupJoin, Join
Ordering
OrderBy, OrderByDescending, Reverse, ThenBy, ThenByDescending
OrderBy (simple - numbers)
OrderBy (simple - dates)
OrderBy (simple - objects)
OrderByDescending
Reverse
ThenBy
ThenByDescending
Other
Concat, SequenceEqual, Zip
Partitioning
Skip, SkipWhile, Take, TakeWhile
Projection
Select, SelectMany
Quantifiers
All, Any, Contains
Restriction
Where
Set
Distinct, Except, Intersect, Union
Close
FirstOrDefault: Retrieves first element from a collection, or default value if collection is empty.
FirstOrDefault: Retrieves first element from a collection, or default value if collection is empty. |
FirstOrDefault: Retrieves first element from a collection, or default value if collection is empty. |
This Lambda Expression sample retrieves first element from "countries" array, but from "empty" array it gets default value (null). |
This Lambda Expression sample retrieves first element from "countries" array, but from "empty" array it gets default value (null). |
// A Query Expression cannot be constructed for FirstOrDefault() in C#. // Consider using a Lambda Expression instead.
' A Query Expression cannot be constructed for FirstOrDefault() in VB.NET. ' Consider using a Lambda Expression instead.
// There is no FirstOrDefault() for Query Expressions in F#, but it has the similar "headOrDefault". let Sample_FirstOrDefault_Linq() = let countries = [|"Denmark"; "Sweden"; "Norway"|] let empty:System.String list = [] let result = query { for c in countries do select c headOrDefault } let resultEmpty = query { for e in empty do select e headOrDefault } Debug.WriteLine(sprintf "First element in the countries array contains:") Debug.WriteLine(sprintf "%s" result) Debug.WriteLine(sprintf "First element in the empty array does not exist:") Debug.WriteLine(sprintf "%b" (resultEmpty = null))Output:
First element in the countries array contains: Denmark First element in the empty array does not exist: true
// Note: While First() will throw an exception if array... // ...is empty, FirstOrDefault gracefully returns null. static void Sample_FirstOrDefault_Lambda() { string[] countries = { "Denmark", "Sweden", "Norway" }; string[] empty = { }; var result = countries.FirstOrDefault(); var resultEmpty = empty.FirstOrDefault(); Debug.WriteLine("First element in the countries array contains:"); Debug.WriteLine(result); Debug.WriteLine("First element in the empty array does not exist:"); Debug.WriteLine(resultEmpty == null); }Output:
First element in the countries array contains: Denmark First element in the empty array does not exist: True
' Note: While First() will throw an exception if array... ' ...is empty, FirstOrDefault() gracefully returns null. Private Shared Sub Sample_FirstOrDefault_Lambda() Dim countries As String() = {"Denmark", "Sweden", "Norway"} Dim empty As String() = {} Dim result = countries.FirstOrDefault() Dim resultEmpty = empty.FirstOrDefault() Debug.WriteLine("First element in the countries array contains:") Debug.WriteLine(result) Debug.WriteLine("First element in the empty array does not exist:") Debug.WriteLine(resultEmpty Is Nothing) End SubOutput:
First element in the countries array contains: Denmark First element in the empty array does not exist: True
// Note: While First will throw an exception if array... // ...is empty, FirstOrDefault gracefully returns null. let Sample_FirstOrDefault_Lambda() = let countries = [|"Denmark"; "Sweden"; "Norway"|] let empty = [||] let result = countries.FirstOrDefault() let resultEmpty = empty.FirstOrDefault() Debug.WriteLine(sprintf "First element in the countries array contains:") Debug.WriteLine(sprintf "%s" result) Debug.WriteLine(sprintf "First element in the empty array does not exist:") Debug.WriteLine(sprintf "%b" (resultEmpty = null))Output:
First element in the countries array contains: Denmark First element in the empty array does not exist: true