Conversion Operators4:44 with Carling Kirk
Learn about conversion operators in LINQ: ToList, and ToArray.
Make sure you've got our birds list loaded in this C# REPL for this video. 0:00 Most of our LINQ operators return an Enumerable, 0:06 what if we needed to be something else like a list or an array? 0:09 The one I use most often is ToList, 0:13 birds.Where b goes to 0:17 b.color equals Red and then I will call ToList. 0:22 Its usefulness might not be apparent though, 0:31 remember when we talked about deferred execution. 0:34 Since we're in the C# REPL, our queries are getting evaluated immediately. 0:37 If we assign a LINQ expression to a variable, 0:43 var redBirds equals birds.Where b goes to b.Color equals Red. 0:49 It doesn't get evaluated until we iterate on it. 0:58 So calling ToList or any of the other conversion operators 1:04 iterates through the sequence to produce the result. 1:08 And so our query is executed. 1:11 RedBirds.ToList. 1:13 Similarly, there's ToArray. 1:19 RedBirds.ToArray and now we have an array. 1:21 There's a few more conversion operators that can be useful in some edge cases, 1:28 like if you need a lookup or a dictionary. 1:32 I've linked to those in the notes. 1:35 You should check them out and think about how you could use them in a LINQ query. 1:37 >> Wow, that's a lot of operators we just used. 1:43 Did you take notes? 1:46 I find myself constantly looking up syntax and documentation on LINQ operators, 1:47 especially for ones I don't use very often. 1:52 We learn to use quantifiers to see if a sequence contains 1:55 elements that fit a condition. 1:59 Element operators to pick single elements out of a sequence. 2:01 We use partitioning operators to obtain a subset of a sequence and 2:05 joins to join multiple sequences together. 2:10 We performed aggregations to analyze our sequences. 2:13 We use set operations to remove duplicates and merge separate sequences into one. 2:17 We then learned we can use LINQ to generate sequences and 2:23 finally, to convert them to different types of sequences. 2:27 We've been working in workspaces this whole time. 2:31 You'll find that as you advance to coding in an IDE like Visual Studio. 2:34 The built in features will help you remember the usage without having 2:39 to look up the documentation. 2:42 Let's take a quick peek at how using an IDE 2:44 can help us jog our memories when writing LINQ queries. 2:47 >> I've got a blank console application here in Visual Studio, 2:52 let's create a list of numbers like we did earlier. 2:55 Var numbers equals new list of int and 2:58 we'll initialize it, 2, 3:05 4, 8, 16, 32, 64. 3:10 Okay, so we don't have the System.Linq namespace. 3:18 Let's look at what Visual Studio's IntelliSense tells us we can call 3:23 on the numbers variable. 3:26 So you'll notice we don't have any of the LINQ methods we've been using. 3:29 Just the normal list methods, so 3:34 let's add the System.Linq namespace using System.Linq. 3:38 Now, I'll type a period and it gives us a lot more methods, look at all those. 3:45 So notice the little arrow icon right here. 3:54 If I click on this, that arrow is indicating that it's an extension method. 3:57 And you can see here that we've got the definition and 4:02 the syntax for each of these. 4:07 Let's call the Where operator, we've used that a lot. 4:12 Where n goes to n is greater than 10. 4:18 If I hover over the n here, 4:26 notice that it's telling me the n parameter is an integer. 4:28 How helpful is that? 4:31 It can be really useful when writing LINQ queries. 4:33 So you see how Visual Studio gives us a lot of documentation, so 4:36 we don't necessarily have to go and find it ourselves. 4:40 What a huge help. 4:42
You need to sign up for Treehouse in order to download course files.Sign up