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
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. |
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. |
// 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.
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 SubOutput:
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