Topics
- What is a QUERY?
- LINQ Query Syntax
- LINQ Method Syntax
What is a Query?
A query is an expression which is used to perform some task.
As a developer, you’re expected to learn different types of languages to be able to query different types of data sources like SQL for a relational database, XQuery for XML, etc
How good will it be, if we can have a single language to do it all?
LINQ is the solution for that, using the LINQ query you can access any type of data source like Objects, XML document, SQL database, etc. and perform a variety of operations.
There are two ways in which we can write queries in LINQ
-
Using Query Syntax
-
Using Method Syntax
LINQ Query Syntax
Query Syntax looks similar to SQL queries and it allows the developers to write it in C# and VB.Net without using quotes as we do it in SQL queries(It actually reduces the chances of any runtime error).
Syntax:
From UserDefinedVariable in OurDataSource
Where, joining, grouping, etc. <OurLambdaExpression>
Select or groupBy operator <OurResults>
Let’s understand the above syntax
The query starts with “From” keyword followed by a “user-defined-variable”, then followed by an “In” keyword and then “Our Collection” which is our data source.
Then we use the “Where” clause to apply some filter conditions to the query and then followed by the “Select” keyword to take out the value that met the condition.
LINQ Query Syntax Example using C#
Let’s write a LINQ query to fetch the numbers with a value of less than 50.
Our Data Source:
int[] myNum_array = { 10, 20, 30, 40, 50, 60, 70, 80, 90 }
Creating our LINQ Query:
IEnumerable myResults = from number in myNum_array
where number <50
select number;
Finally, execute the query by using a foreach loop:
foreach (var item in myResults)
{
Console.WriteLine(item);
}
Following is the full code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LinqExamplesCSharp { class Program { static void Main(string[] args) { int[] myNum_array = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; //LINQ Query Syntax to Print Numbers less than 50 IEnumerable myResults = from number in myNum_array where number <50 select number; foreach (var item in myResults) { Console.WriteLine(item); } Console.ReadLine(); } } } Output: 10 20 30 40
LINQ Query Syntax Example using VB.Net
Module Module1 Sub Main() Dim myNum_array As Integer() = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100} 'LINQ Query Syntax to Print Numbers less than 50 Dim myResults As IEnumerable(Of Integer) = From number In myNum_array Where number < 50 Select number For Each item In myResults Console.WriteLine(item) Next Console.ReadLine() End Sub End Module Output: 10 20 30 40
LINQ Method Syntax
Method Syntax is simply using already available extension methods of the Enumerable class to obtain our desired output.
Syntax:
OurDatasource.<Where,ToList,Contains, etc..>
Let’s understand the above syntax
Here we are using standard query operators like Select, Tolist, Contains, Where, GroupBy, Join, Sum, Max, etc.
Here you can directly call them without using query syntax.
LINQ Method Syntax Example using C#
Let’s write a LINQ query to fetch the numbers with a value of less than 50.
Our Data Source:
int[] myNum_array = { 10, 20, 30, 40, 50, 60, 70, 80, 90 }
Creating our LINQ Method Query:
IEnumerable<int> myResults = myNum_array.Where(n => n < 50).ToList()
Finally, execute the query by using a foreach loop:
foreach (var item in myResults)
{
Console.WriteLine(item);
}
Following is the full code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LinqExamplesCSharp { class Program { static void Main(string[] args) { int[] myNum_array = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; //LINQ Method Syntax to Print Numbers less than 50 IEnumerable<int> myResults = myNum_array.Where(n => n < 50).ToList(); foreach (var item in myResults) { Console.WriteLine(item); } Console.ReadLine(); } } } Output: 10 20 30 40
LINQ Method Syntax Example using VB.Net
Module Module1 Sub Main() Dim myNum_array As Integer() = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100} 'LINQ Method Syntax to Print Numbers less than 50 Dim myResults As IEnumerable(Of Integer) = myNum_array.Where(Function(n) n > 3).ToList() For Each item In myResults Console.WriteLine(item) Next Console.ReadLine() End Sub End Module Output: 10 20 30 40
Previous topic : LINQ Introduction
Next Topic: LINQ Lambda Expression
For more articles on LINQ, Click here