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

Select (anonymous type)

Lambda Query

Select: Selects, projects and transforms elements in a collection.

Select: Selects, projects and transforms elements in a collection.

This Lambda Expression sample calculates cos and sin of selected angles, and projects result into anonymously typed elements.

This Lambda Expression sample calculates cos and sin of selected angles, and projects result into anonymously typed elements.

  • C#
  • VB.Net
  • F#
static void Sample_Select_Linq_Anonymous()
{
    double[] angles = { 30D, 60D, 90D }; // Angles in radians

    var result = from a in angles
                 select new { Angle = a, Cos = Math.Cos(a), Sin = Math.Sin(a) };

    Debug.WriteLine("Calculated values:");
    foreach (var res in result)
        Debug.WriteLine(String.Format("Angle {0}: Cos = {1}, Sin = {2}", res.Angle, res.Cos, res.Sin));
}
Output:
Calculated values:
Angle 30: Cos = 0,154251449887584, Sin = -0,988031624092862
Angle 60: Cos = -0,952412980415156, Sin = -0,304810621102217
Angle 90: Cos = -0,44807361612917, Sin = 0,893996663600558
Private Shared Sub Sample_Select_Linq_Anonymous()
    Dim angles As Double() = {30.0, 60.0, 90.0} ' Angles in radians

    Dim result = From a In angles
                 Select New With { _
                     Key .Angle = a, _
                     Key .Cos = Math.Cos(a), _
                     Key .Sin = Math.Sin(a) _
                 }

    Debug.WriteLine("Calculated values:")
    For Each res In result
        Debug.WriteLine([String].Format("Angle {0}: Cos = {1}, Sin = {2}", res.Angle, res.Cos, res.Sin))
    Next
End Sub
Output:
Calculated values:
Angle 30: Cos = 0,154251449887584, Sin = -0,988031624092862
Angle 60: Cos = -0,952412980415156, Sin = -0,304810621102217
Angle 90: Cos = -0,44807361612917, Sin = 0,893996663600558
' A Query Expression cannot be constructed for Select into anonymously typed elements in F#.
' Consider using a Lambda Expression instead.
  • C#
  • VB.Net
  • F#
static void Sample_Select_Lambda_Anonymous()
{
    double[] angles = { 30D, 60D, 90D }; // Angles in radians

    var result = angles.Select(a => new { Angle = a, Cos = Math.Cos(a), Sin = Math.Sin(a) });

    Debug.WriteLine("Calculated values:");
    foreach (var res in result)
        Debug.WriteLine(String.Format("Angle {0}: Cos = {1}, Sin = {2}", res.Angle, res.Cos, res.Sin));
}
Output:
Calculated values:
Angle 30: Cos = 0,154251449887584, Sin = -0,988031624092862
Angle 60: Cos = -0,952412980415156, Sin = -0,304810621102217
Angle 90: Cos = -0,44807361612917, Sin = 0,893996663600558
Private Shared Sub Sample_Select_Lambda_Anonymous()
    Dim angles As Double() = {30.0, 60.0, 90.0} ' Angles in radians

    Dim result = angles.Select(Function(a) New With { _
        Key .Angle = a, _
        Key .Cos = Math.Cos(a), _
        Key .Sin = Math.Sin(a) _
    })

    Debug.WriteLine("Calculated values:")
    For Each res In result
        Debug.WriteLine([String].Format("Angle {0}: Cos = {1}, Sin = {2}", res.Angle, res.Cos, res.Sin))
    Next
End Sub
Output:
Calculated values:
Angle 30: Cos = 0,154251449887584, Sin = -0,988031624092862
Angle 60: Cos = -0,952412980415156, Sin = -0,304810621102217
Angle 90: Cos = -0,44807361612917, Sin = 0,893996663600558
let Sample_Select_Lambda_Anonymous() =
    let angles : double[] = [|30.0; 60.0; 90.0|]

    let result = angles.Select(fun a -> {Angle = a; Cos = Math.Cos(a); Sin = Math.Sin(a)} )

    Debug.WriteLine(sprintf "Calculated values:")
    for res in result do
        Debug.WriteLine(sprintf "Angle %f: Cos = %f, Sin = %f" res.Angle res.Cos res.Sin)
Output:
Calculated values:
Angle 30.000000: Cos = 0.154251, Sin = -0.988032
Angle 60.000000: Cos = -0.952413, Sin = -0.304811
Angle 90.000000: Cos = -0.448074, Sin = 0.893997

Share this sample on:

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