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

SequenceEqual

Lambda Query

SequenceEqual: Checks whether two collections are equal. Use StringComparer.OrdinalIgnoreCase parameter to ignore case.

SequenceEqual: Checks whether two collections are equal. Use StringComparer.OrdinalIgnoreCase parameter to ignore case.

This Lambda Expression sample shows different methods to test for array equality.

This Lambda Expression sample shows different methods to test for array equality.

  • C#
  • VB.Net
  • F#
// A Query Expression cannot be constructed for SequenceEqual() in C#.
// Consider using a Lambda Expression instead.
' A Query Expression cannot be constructed for SequenceEqual() in VB.NET.
' Consider using a Lambda Expression instead.
// A Query Expression cannot be constructed for SequenceEqual() in F#.
// Consider using a Lambda Expression instead.
  • C#
  • VB.Net
  • F#
static void Sample_SequenceEqual_Lambda()
{
    string[] words =            { "one", "two", "three" };
    string[] wordsSame =        { "one", "two", "three" };
    string[] wordsOrder =       { "two", "three", "one" };
    string[] wordsCase =        { "one", "TWO", "three" };

    var resultSame = words.SequenceEqual(wordsSame);
    var resultOrder = words.SequenceEqual(wordsOrder);
    var resultCase = words.SequenceEqual(wordsCase);
    var resultCaseIgnored = words.SequenceEqual(wordsCase, StringComparer.OrdinalIgnoreCase);

    Debug.WriteLine("SequenceEqual on two identical arrays:");
    Debug.WriteLine(resultSame);

    Debug.WriteLine("SequenceEqual on two differently ordered but otherwise identical arrays:");
    Debug.WriteLine(resultOrder);

    Debug.WriteLine("SequenceEqual on two differently cased but otherwise identical arrays:");
    Debug.WriteLine(resultCase);

    Debug.WriteLine("SequenceEqual on two differently cased but otherwise identical arrays, where case is ignored:");
    Debug.WriteLine(resultCaseIgnored);
}
Output:
SequenceEqual on two identical arrays:
True
SequenceEqual on two differently ordered but otherwise identical arrays:
False
SequenceEqual on two differently cased but otherwise identical arrays:
False
SequenceEqual on two differently cased but otherwise identical arrays, where case is ignored:
True
Private Shared Sub Sample_SequenceEqual_Lambda()
    Dim words As String() = {"one", "two", "three"}
    Dim wordsSame As String() = {"one", "two", "three"}
    Dim wordsOrder As String() = {"two", "three", "one"}
    Dim wordsCase As String() = {"one", "TWO", "three"}

    Dim resultSame = words.SequenceEqual(wordsSame)
    Dim resultOrder = words.SequenceEqual(wordsOrder)
    Dim resultCase = words.SequenceEqual(wordsCase)
    Dim resultCaseIgnored = words.SequenceEqual(wordsCase, StringComparer.OrdinalIgnoreCase)

    Debug.WriteLine("SequenceEqual on two identical arrays:")
    Debug.WriteLine(resultSame)

    Debug.WriteLine("SequenceEqual on two differently ordered but otherwise identical arrays:")
    Debug.WriteLine(resultOrder)

    Debug.WriteLine("SequenceEqual on two differently cased but otherwise identical arrays:")
    Debug.WriteLine(resultCase)

    Debug.WriteLine("SequenceEqual on two differently cased but otherwise identical arrays, where case is ignored:")
    Debug.WriteLine(resultCaseIgnored)
End Sub
Output:
SequenceEqual on two identical arrays:
True
SequenceEqual on two differently ordered but otherwise identical arrays:
False
SequenceEqual on two differently cased but otherwise identical arrays:
False
SequenceEqual on two differently cased but otherwise identical arrays, where case is ignored:
True
let Sample_SequenceEqual_Lambda() =
    let words =            [|"one"; "two"; "three"|]
    let wordsSame =        [|"one"; "two"; "three"|]
    let wordsOrder =       [|"two"; "three"; "one"|]
    let wordsCase =        [|"one"; "TWO"; "three"|]
    let wordsCaseIgnored = [|"one"; "TWO"; "three"|]

    let resultSame = words.SequenceEqual(wordsSame)
    let resultOrder = words.SequenceEqual(wordsOrder)
    let resultCase = words.SequenceEqual(wordsCase)
    let resultCaseIgnored = words.SequenceEqual(wordsCaseIgnored, StringComparer.OrdinalIgnoreCase)

    Debug.WriteLine(sprintf "SequenceEqual on two identical arrays:")
    Debug.WriteLine(sprintf "%b" resultSame)

    Debug.WriteLine(sprintf "SequenceEqual on two differently ordered but otherwise identical arrays:")
    Debug.WriteLine(sprintf "%b" resultOrder)

    Debug.WriteLine(sprintf "SequenceEqual on two differently cased but otherwise identical arrays:")
    Debug.WriteLine(sprintf "%b" resultCase)

    Debug.WriteLine(sprintf "SequenceEqual on two differently cased but otherwise identical arrays, where case is ignored:")
    Debug.WriteLine(sprintf "%b" resultCaseIgnored)
Output:
SequenceEqual on two identical arrays:
true
SequenceEqual on two differently ordered but otherwise identical arrays:
false
SequenceEqual on two differently cased but otherwise identical arrays:
false
SequenceEqual on two differently cased but otherwise identical arrays, where case is ignored:
true

Share this sample on:

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