LINQSamples.com
  • Samples
  • Tutorials
  • About
  • Links
  • Contact
LINQ to Objects

Aggregation

Aggregate, Average, Count, LongCount, Max, Min, Sum

      Aggregate (simple)       Aggregate (seed)       Average       Count       LongCount       Max       Min       Sum

Conversion

AsEnumerable, Cast, OfType, ToArray, ToDictionary, ToList, ToLookup

      AsEnumerable       Cast       OfType       ToArray       ToDictionary (simple)       ToDictionary (conditional)       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

      DefaultIfEmpty (simple)       DefaultIfEmpty (default value)       Empty       Range       Repeat

Grouping

GroupBy

      GroupBy

Join

GroupJoin, Join

      GroupJoin (left outer join)       Join (inner join)

Ordering

OrderBy, OrderByDescending, Reverse, ThenBy, ThenByDescending

      OrderBy (simple - numbers)       OrderBy (simple - dates)       OrderBy (simple - objects)       OrderByDescending       Reverse       ThenBy       ThenByDescending

Other

Concat, SequenceEqual, Zip

      Concat (simple - numbers)       Concat (simple - strings)       SequenceEqual       Zip

Partitioning

Skip, SkipWhile, Take, TakeWhile

      Skip       SkipWhile       Take       TakeWhile

Projection

Select, SelectMany

      Select (simple)       Select (anonymous type)       Select (indexed)       SelectMany (cross join)

Quantifiers

All, Any, Contains

      All       Any       Contains

Restriction

Where

      Where (simple - numbers)       Where (simple - objects)       Where (indexed)

Set

Distinct, Except, Intersect, Union

      Distinct       Except       Intersect       Union
  Close

FirstOrDefault

Lambda Query

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 Query Expression sample retrieves first element from "countries" array, but from "empty" array it gets default value (null).

This Query Expression sample retrieves first element from "countries" array, but from "empty" array it gets default value (null).

  • C#
  • VB.Net
  • F#
// 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
  • C#
  • VB.Net
  • F#
// 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 Sub
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.
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

Share this sample on:

© 2023 - LINQSamples.com | Terms Of Service  -  Privacy Policy