Friday, December 28, 2012

LINQ - Grouping Operators


Introduction

This sample shows different uses of Conversion Operators:
  • ToArray
  • ToList
  • ToDictionary
  • OfType

Description

ToArray


This sample uses ToArray to immediately evaluate a sequence into an array.
C#
public void Linq54()
{
    double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
 
    var sortedDoubles =
        from d in doubles
        orderby d descending
        select d;
    var doublesArray = sortedDoubles.ToArray();
 
    Console.WriteLine("Every other double from highest to lowest:");
    for (int d = 0; d < doublesArray.Length; d += 2)
    {
        Console.WriteLine(doublesArray[d]);
    }
}
Result
Every other double from highest to lowest:
4.1
2.3
1.7

ToList


This sample uses ToList to immediately evaluate a sequence into a List<T>.
C#
public void Linq55()
{
    string[] words = { "cherry", "apple", "blueberry" };
 
    var sortedWords =
        from w in words
        orderby w
        select w;
    var wordList = sortedWords.ToList();
 
    Console.WriteLine("The sorted word list:");
    foreach (var w in wordList)
    {
        Console.WriteLine(w);
    }
}
Result
The sorted word list:
apple
blueberry
cherry

ToDictionary


This sample uses ToDictionary to immediately evaluate a sequence and a related key expression into a dictionary.

C#
public void Linq56()
{
    var scoreRecords = new[] { new {Name = "Alice", Score = 50},
                                new {Name = "Bob"  , Score = 40},
                                new {Name = "Cathy", Score = 45}
                            };
 
    var scoreRecordsDict = scoreRecords.ToDictionary(sr => sr.Name);
 
    Console.WriteLine("Bob's score: {0}", scoreRecordsDict["Bob"]);
}
Result
Bob's score: { Name = Bob, Score = 40 }

OfType


This sample uses OfType to return only the elements of the array that are of type double.

C#
public void Linq57()
{
    object[] numbers = { null, 1.0, "two", 3, "four", 5, "six", 7.0 };
 
    var doubles = numbers.OfType<double>();
 
    Console.WriteLine("Numbers stored as doubles:");
    foreach (var d in doubles)
    {
        Console.WriteLine(d);
    }
}
Result
Numbers stored as doubles:
1
7

No comments:

Post a Comment

Code Formater

Paste Here Your Source Code
Source Code Formatting Options
1) Convert Tab into Space :
2) Need Line Code Numbering :
3) Remove blank lines :
4) Embeded styles / Stylesheet :
5) Code Block Width :
6) Code Block Height :
7) Alternative Background :
Copy Formatted Source Code
 
Preview Of Formatted Code