LINQ Introduction
LINQ
26 Articles
In this article, let's learn about LINQ in .NET.
Table of Contents
- Assumptions
- Pre Requisites
- Introduction
- Examples SQL, Loops and LINQ
- Why use LINQ?
- LINQ Operations
- Summary
Assumptions
I assumne you are,
- a C# developer
- familiar with SQL
- new to using LINQ
Pre Requisites
- C# Generics
- C# Delegates, Lambda Expressions
- C# Extension Methods
Introduction
Language-Integrated Query LINQ is a SQL‑like syntax that you can use in C# and Visual Basic and allows you to query any type of collections that implement IEnumerable<T> or IQueryable<T>.
Now, some of the most common IEnumerable types are,
- Any Array
- String (Array of characters)
- List<T>
- HashSet<T>, Dictionary<TKey, TValue>, LinkedList<T>, etc
The IQueryable objects are typically those found in LINQ integrations. Now, some of the most common IQueryable integrations are,
- LINQ to XML - translator that knows how to read XML documents and then allow you to apply LINQ queries to that XML
- Entity Framework - SQL LINQ translator that reads from a SQL database and then gives you back that data that you can now query
Besides the LINQ integrations, there's LINQ to objects
- LINQ and Strings
- LINQ and Reflection
- LINQ and File Directories
- LINQ to Entities
- LINQ to Dataset
To use LINQ in your applications, all you need to do is add a using statement using System.Linq. What this does is this adds extension methods that are part of the Enumerable and Queryable base classes so that you can apply the LINQ queries to whatever you're going to do.
Examples SQL, Loops and LINQ
Let's take a quick comparison of SQL, loops, and LINQ. SQL is very similar to the LINQ query language, so we're going to take a look at SQL, looping, and LINQ all side by side. Let's start out with a simple SQL WHERE clause.
Code Sample - simple SQL WHERE clause
Code Sample - simple SQL MIN clause
Why use LINQ?
So, why use LINQ? Because,
- Unified approach for querying any types of object
- Eliminate looping code
- IntelliSense Support
- Type-checking of objects at compile time
LINQ Operations
So what are the types of operations that we can perform with LINQ? Well, we can
- Select
- Projection (change shape)
- Order (ascending / descending)
- Get an Element (find, first, last, single)
- Filter (where)
- Iteration / Partition (foreach, skip, take)
- Quantify (any, all, contains)
- Set Comparison (equal, except, intersection)
- Set Operations (union, concat)
- Joining (inner joins, outer joins)
- Grouping (groupby, subquery, groupjoin)
- Distinct Sets (distinct)
- Aggregation (count, sum, min, max, average)
Summary
In this article we learn't what is LINQ. It's a SQL-like syntax for C# used to query IEnumerable and IQueryable types. It can be used with many types of collections. It can search, order, group, etc and do many other operations. In the next article we will explore each operations with a demo.