Conversion Operators (LINQ)
Posted by Rajinder
Last Updated: July 22, 2012

ToArray

This sample uses ToArray to immediately evaluate a sequence into an array.


public void Linq() 
{ 
    double[] doubles = { 1.72.31.94.12.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]); 
    } 
}

ToList

This sample uses ToList to immediately evaluate a sequence into a List<T>.

public void Linq() 
{ 
    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); 
    } 
}

ToDictionary

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

public void Linq() 
{ 
    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"]); 
}

OfType

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

public void Linq() 
{ 
    object[] numbers = { null1.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); 
    } 
}