LINQ, or Language Integrated Query, is a query language in the .NET Framework. LINQ is useful in that you could have several different data sources you are working with within Visual Studio, and LINQ provides a way to query data uniformly. Examples include SQL, Objects, ADO.NET, Entity Framework etc.
Here we will go through examples of using LINQ.
Firstly, to use LINQ, you add the namespace:
using System.Linq;
Let’s say we have a list of Customers:
Customer customer1 = new Customer(); customer1.FirstName = "Bob"; customer1.LastName = "Smith"; customer1.PhoneNumber = "111-222-3344"; Customer customer2 = new Customer(); customer2.FirstName = "James"; customer2.LastName = "Smith"; customer2.PhoneNumber = "111-222-3355"; Customer customer3 = new Customer(); customer3.FirstName = "David"; customer3.LastName = "Smith"; customer3.PhoneNumber = "111-222-3377"; List l = new List(); l.Add(customer1); l.Add(customer2); l.Add(customer3);
Using LINQ, we can easily find out several pieces of information, such as getting the phone number of a particular customer, returning a list of all customers that meet a certain condition, etc.
Lambda expressions are anonymous functions that are used to create delegates in LINQ. An example of a lambda expression is x => x == 1, where the => operator separates the variables from the body. In the code below, you can see how we can use Lambda expressions with LINQ to filter and retrieve information:
// Find Bob's phone number string BobPhoneNumber = l.First(s => s.FirstName == "Bob").PhoneNumber; Console.WriteLine(BobPhoneNumber); // Return customer Bob Customer Bob = l.First(s => s.FirstName == "Bob"); string BobLastName = Bob.LastName; Console.WriteLine(BobLastName); // Or using var var David = l.First(s => s.FirstName == "David"); string DavidLastName = David.LastName; Console.WriteLine(DavidLastName); // Return all smiths IEnumerable Smiths = l.Where(c => c.LastName == "Smith"); foreach (Customer Smith in Smiths) { Console.WriteLine("Smith's first name: {0}", Smith.FirstName); } // Return count int count = (from customer in l where customer.LastName == "Smith" select customer).Count(); Console.WriteLine("Count: {0}", count);
This produces:
The main purpose of a Lambda expression is to simplify the amount of code written.
Consider our above example. Let’s say we wrote an anonymous method that returned the customers with a first name of “James”. It would look something like:
IEnumerable<Customer> James = l.Where(delegate (Customer c) { return c.FirstName == "James"; });
Which produces:
Or, we could write the lambda expression as more simply:
IEnumerable<Customer> James = l.Where(c => c.FirstName == "James");
I AM SPENDING MORE TIME THESE DAYS CREATING YOUTUBE VIDEOS TO HELP PEOPLE LEARN THE MICROSOFT POWER PLATFORM.
IF YOU WOULD LIKE TO SEE HOW I BUILD APPS, OR FIND SOMETHING USEFUL READING MY BLOG, I WOULD REALLY APPRECIATE YOU SUBSCRIBING TO MY YOUTUBE CHANNEL.
THANK YOU, AND LET'S KEEP LEARNING TOGETHER.
CARL