To Array
This sample generates an array of double values by first using a query expression with orderby to create a sorted sequence of doubles, then ToArray to generate an array from the sequence.
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
To List
This sample generates an array of string values by first using a query expression with orderby to create a sorted sequence of strings from a string array, then toList to generate a List from the sequence.
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
To Dictionary
This sample uses anonymous types to create a data structure of people and their scores. It then uses ToDictionary to generate a dictionary from the sequence and its key expression.
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 prints all of the elements of an array that are of type double. The sample uses OfType to test the element's type.
public void Linq57() {
object[] numbers = { null, 1.0, "two", 3, 4.0f, 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