Linq101-Conversion Operators
1 using System; 2 using System.Linq; 3 4 namespace Linq101 5 { 6 class Conversion 7 { 8 /// <summary> 9 /// This sample uses ToArray to immediately evaluate a sequence into an array. 10 /// </summary> 11 public void Linq54() 12 { 13 double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 }; 14 15 //var doublesArray = doubles.OrderByDescending(d => d).ToArray(); 16 var sortedDoubles = from d in doubles 17 orderby d descending 18 select d; 19 var doublesArray = sortedDoubles.ToArray(); 20 21 Console.WriteLine("Every other double from highest to lowest:"); 22 for (int d = 0; d < doublesArray.Length; d += 2) 23 { 24 Console.WriteLine(doublesArray[d]); 25 } 26 } 27 28 /// <summary> 29 /// This sample uses ToList to immediately evaluate a sequence into a List<T>. 30 /// </summary> 31 public void Linq55() 32 { 33 string[] words = { "cherry", "apple", "blueberry" }; 34 35 //var wordList = words.OrderBy(w => w).ToList(); 36 var sortedWords = 37 from w in words 38 orderby w 39 select w; 40 var wordList = sortedWords.ToList(); 41 42 Console.WriteLine("The sorted word list:"); 43 foreach (var w in wordList) 44 { 45 Console.WriteLine(w); 46 } 47 } 48 49 /// <summary> 50 /// This sample uses ToDictionary to immediately evaluate a sequence and a related key expression into a dictionary. 51 /// </summary> 52 public void Linq56() 53 { 54 var scoreRecords = new[] { new {Name = "Alice", Score = 50}, 55 new {Name = "Bob" , Score = 40}, 56 new {Name = "Cathy", Score = 45} 57 }; 58 59 var scoreRecordsDict = scoreRecords.ToDictionary(s => s.Name); 60 61 Console.WriteLine("Bob' Score: {0}", scoreRecordsDict["Bob"].Score); 62 } 63 64 /// <summary> 65 /// This sample uses OfType to return only the elements of the array that are of type double. 66 /// </summary> 67 public void Linq57() 68 { 69 object[] numbers = { null, 1.0, "two", 3, "four", 5, "six", 7.0 }; 70 71 var doubles = numbers.OfType<double>(); 72 73 Console.WriteLine("Numbers stored as doubles:"); 74 foreach (var d in doubles) 75 { 76 Console.WriteLine(d); 77 } 78 } 79 } 80 }