Linq(Language
Integrated Query) is a component released within the .NET 3.5 Framework. It
serves the purpose of querying objects. LINQ comprises a series of operators,
which are used to query, filter and project data in arrays, enumerable classes,
relational
databases and XML. LINQ has its own Query Processing Engine. The
information returned by a LINQ query is a collection of in-memory object which
may be enumerated. For writing code
in C# that understands the LINQ syntax, the System.Linq namespace needs to be
used.
Syntax of LINQ:
where cust.City == "Mumbai"
select cust;
---------------------------------------------------------------------
Grouping:
Here, we are using select new clause in place of select because with the new keyword we are building anonymous types with only those two fields. Let’s say customers and distributors have 20 columns combined together and we need only two that is when we use select new.
Syntax of LINQ:
---------------------------------------------------------------------
var numQuery = from num in numbers
where (num % 2) == 0
select num;
---------------------------------------------------------------------
Where:where (num % 2) == 0
select num;
---------------------------------------------------------------------
- The 'from' keyword logically loops through the contents of the collection (numbers in the above example).
- The expression with the 'where' keyword is evaluated for each object in the collection.
- The 'select' statement selects the evaluated object to add to the list being returned.
- The 'var' keyword is for variable declaration. Since the exact type of the returned object is not known, it indicates that the information will be inferred dynamically.
Operators
While
writing queries, you will find a number of operators that we can use. The most
general operators are :
- Projection operators (Select)
- Restriction operators (Where)
- Partitioning operators (Take / Skip, TakeWhile/ SkipWhile)
- Join operators (Join)
- Concatenation operator (Concat)
- Ordering operators (order by)
- Grouping operators (group by into)
Some
of the basic operations that can be performed are:
Filtering:
Filtering
causes the query to return only those elements for which the expression is
true. The result is produced by using the where clause. In the following
example, only those customers who have an address in Mumbai are returned.
---------------------------------------------------------------------
var query = from cust in customerswhere cust.City == "Mumbai"
select cust;
---------------------------------------------------------------------
Ordering:
Orderby
clause will cause the elements in the returned sequence to be sorted. For
example, the following query can be extended to sort the results based on the Name
property.
---------------------------------------------------------------------
var query = from cust in customers
where cust.City == "Mumbai"
orderby cust.Name ascending
select cust;
---------------------------------------------------------------------
select cust;
---------------------------------------------------------------------
Grouping:
The
group clause enables you to group your results based on a key that you specify.
---------------------------------------------------------------------
var query = from i in _itemList
group i by i.Category into g
select new { Category = g.Key, Items = g };
---------------------------------------------------------------------
---------------------------------------------------------------------
var query = from i in _itemList
group i by i.Category into g
select new {
---------------------------------------------------------------------
Joining:
Let
say we want to find all the customers and distributors who have the same
location. We can write a join query using LINQ as mentioned below:
---------------------------------------------------------------------
var query = from cust in customers
join dist in distributors on cust.City equals dist.City
select new{cust.Name,dist.Name };
---------------------------------------------------------------------
Here, we are using select new clause in place of select because with the new keyword we are building anonymous types with only those two fields. Let’s say customers and distributors have 20 columns combined together and we need only two that is when we use select new.
About Author:
Saju Verghese works with Systems Plus Pvt. Ltd. on DOT NET Technology projects. He can be contacted at saju.v@spluspl.com
Saju Verghese works with Systems Plus Pvt. Ltd. on DOT NET Technology projects. He can be contacted at saju.v@spluspl.com
No comments:
Post a Comment