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

TakeWhile

Lambda Query

TakeWhile: Takes elements in a collection while specified condition is met, starting from first element.

TakeWhile: Takes elements in a collection while specified condition is met, starting from first element.

This Lambda Expression sample takes numbers from array, while number is less than 5.

This Lambda Expression sample takes numbers from array, while number is less than 5.

  • C#
  • VB.Net
  • F#
// A Query Expression cannot be constructed for TakeWhile() in C#.
// Consider using a Lambda Expression instead.
' A Query Expression cannot be constructed for TakeWhile() in VB.NET.
' Consider using a Lambda Expression instead.
let Sample_TakeWhile_Linq() =
    let numbers = [|1; 2; 3; 4; 5; 6; 7; 8; 9; 10|];

    let result = query {
        for n in numbers do
        takeWhile (n < 5)
    }

    Debug.WriteLine("Takes numbers one by one, and stops when condition is no longer met:");
    for number in result do
        Debug.WriteLine(sprintf "%d" number)
Output:
Takes numbers one by one, and stops when condition is no longer met:
1
2
3
4
  • C#
  • VB.Net
  • F#
static void Sample_TakeWhile_Lambda()
{
    int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

    var result = numbers.TakeWhile(n => n < 5);

    Debug.WriteLine("Takes numbers one by one, and stops when condition is no longer met:");
    foreach (int number in result)
        Debug.WriteLine(number);
}
Output:
Takes numbers one by one, and stops when condition is no longer met:
1
2
3
4
Private Shared Sub Sample_TakeWhile_Lambda()
    Dim numbers As Integer() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

    Dim result = numbers.TakeWhile(Function(n) n < 5)

    Debug.WriteLine("Takes numbers one by one, and stops when condition is no longer met:")
    For Each number As Integer In result
        Debug.WriteLine(number)
    Next
End Sub
Output:
Takes numbers one by one, and stops when condition is no longer met:
1
2
3
4
let Sample_TakeWhile_Lambda() =
    let numbers = [|1; 2; 3; 4; 5; 6; 7; 8; 9; 10|];

    let result = numbers.TakeWhile (fun n -> n < 5)

    Debug.WriteLine("Takes numbers one by one, and stops when condition is no longer met:");
    for number in result do
        Debug.WriteLine(sprintf "%d" number)
Output:
Takes numbers one by one, and stops when condition is no longer met:
1
2
3
4

Share this sample on:

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