C# Tutorials and offshore development in India
    Tutorials   Resources   Forum   Reviews   Communities   Interview   Jobs   Projects   Training   Your Ad Here    
Silverlight Games | Mentor | Code Converter | Articles | Code Factory | Computer Jokes | Members | Peer Appraisal | IT Companies | Bookmarks | Polls | Revenue Sharing | Lobby | Gift Shop |


Prizes & Awards
My Profile



Active Members
TodayLast 7 Days more...






Resources » Articles » .NET Framework »

LINQ QUerry : A Step Ahead Series


Posted Date: 10 Feb 2009    Resource Type: Articles    Category: .NET Framework
Author: Gaurav AroraMember Level: Diamond    
Rating: 4 out of 54 out of 54 out of 54 out of 5Points: 35



LINQ Query : A Step Ahead Series

History:
The article is related to previous posts :

1. Anonymous Types in LINQ: A Step Ahead Series

2. How to Test Anonymous Type Equality - LINQ: A Step Ahead Series

Introduction:

LINQ - Language Integreted Query is repeadily used in these days. The presented article is elaborate the idea "How to describe a LINQ Query".

Simply, a query is an expression that retrieves data from a data source.

Scope:

The scope of the presented article is upto its title and projected scenarios.
  • Basics

  • LINQ Actions

  • Some basic example

  • Creating a LINQ project using Visual Studio



Description:

Now lets elaborate the topic in following points:

1. Operation of LINQ Query:

LINQ query consists three distinct actions as defined bellow:

(a) In this step LINQ gather the DataSource it may be any source of data.
(b) In next step have to create the Query
(c) Finally, execute the Query.

Lest, go through the following code-lines and try to understand the above operations:


class LINQQuery
{
static void Main()
{

// This is the Data source - Operation - I
int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

// Query Creation - Operation - II
var numQuery =
from num in numbers
where (num % 2) == 0
select num;

// Query Execution - Operation - III
foreach (int num in numQuery)
{
Console.Write("{0,1} ", num);
}
}
}


Three actions of LINQ Query [adapted from MSDN - bb397906]
LINQ

2. Skip and Take:

Skip, SkipWhile, Take, and TakeWhile are used to partition collectionsinto two parts and then return one of the parts. These partition features are only implemented as extension methods.

skip jumps to the indicated argument position in the sequence and returns everything after that.

SkipWhile accepts a predicate and instead of using a position, it
skips until the predicate evaluates to false.

Take grabs all of the elements up to the specified position in the index.

TakeWhile grabs all of the items in a sequence as long as the predicate evaluates to true.

3. Create a LINQ Project:

As per MSDN :

To use LINQ to XML or LINQ to DataSet in either C# or VB.Net language, you must manually add namespaces and references as described in the following :

If you are upgrading a project that you created by using an earlier version of Visual Studio, you may have to supply these or other LINQ -related references manually and also manually set the project to target .NET Framework version 3.5.

To target the .NET Framework version 3.5


  1. In Visual Studio, open a Visual Basic or C# project that was created in Visual Studio 2005 and follow the prompts to convert it to a Visual Studio 2008 project.

  2. For a C# project, click the Project menu, and then click Properties.

  3. In the Application property page, select .NET Framework 3.5 in the Target Framework drop-down list.

  4. For a Visual Basic project, click the Project menu, and then click Properties.

  5. In the Compile property page, click Advanced Compile Options and then select .NET Framework 3.5 in the Target Framework (all configurations) drop-down list.



Important Points:

  1. LINQ queries start with the keyword from.

  2. In a LINQ query, you are always working with objects.

  3. You an apply the basic operations to LINQ Query as follow:



    • Filtering is the common operation tyhrough which you can filter the data, consider following code:


      //filter all employees on last name as 'Arora'
      var lnqueryNames = from empname in employee
      where empname.lastname == "Arora"
      select empname;



    • Ordering sets the ordering for the output, lets take a loon in the following:


      //display all Arora in ascending order with departments
      var lnqueryNames = from empname in employee
      where empname.lastname == "Arora"
      orderby empname.dept ascending
      select empname;



    • Ordering give the output in a group, consider following example:



      var lnqueryNames = from empname in employee
      group empname by empname.department;

      foreach (var empbydept in lnqueryNames)
      {
      Console.WriteLine(empbydept.Key);
      foreach (Employee emp in empbydept)
      {
      Console.WriteLine(" {0}", emp.lastName);
      }
      }






Attachments






Responses

Author: Miss Meetu Choudhary    10 Feb 2009Member Level: Diamond   Points : 0
HI,

Very good article, its having almost all detail.


Feedbacks      
Popular Tags   What are tags ?   Search Tags  
Sign In to add tags.
LINQ QUerry : A Step Ahead Series  .  

Post Feedback


This is a strictly moderated forum. Only approved messages will appear in the site. Please use 'Spell Check' in Google toolbar before you submit.
You must Sign In to post a response.
Next Resource: Encrypting Sections in Web.config File
Previous Resource: Introduction to LINQ
Return to Discussion Resource Index
Post New Resource
Category: .NET Framework


Post resources and earn money!
 
More Resources



dotNet Slackers

About Us    Contact Us    Privacy Policy    Terms Of Use