ARTICLE

LINQ-Language Integrated Query

Posted by Gomathi Palaniswamy Articles | LINQ August 19, 2011
Here I will explain LINQ-Language Integrated Query.
Reader Level:

Introduction:

  • Linq is not c#3.0 and vice versa.
  • New language enhancement introduced in c#
  • Allow you to write structured type-safe queries over local object collections and remote data sources.
  • The basic units of linq are sequence and elements
  • Sequence- object implements the generic IEnumerable interface, Element-Each item in a sequence

Example:

    int[] valu = new int[] {10,20,30};

here the valu is a sequence and 10,20,30 are elements.

Query operator:

Query operator is a method. 

    IEnumerable<string> result = Enumerable.Where(stringarray, o => o.Length == 3);

"Where" is the query operator.
Two Types of Queries in linq:

  1. Comprehensive
  2. Lamda

Comprehension queries:

Comprehensive queries are syntactically same like sql queries but the executions flows are different.

    int[] array = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
                      var query = (from no in array
                                where (no % 3 == 0)
                                select no).ToArray();
                      foreach (int no in query)
                      {
                           Console.WriteLine(no);
                      }   


Lamda Queries:

    string[] stringarray = { "How", "are", "you" };
                  
IEnumerable<string> result = Enumerable.Where(stringarray, o => o.Length == 3);        
                  
foreach (string res in result)
                  
Console.WriteLine(res);
    (or)
    string[] stringarray = { "How", "are", "you" };
                  
IEnumerable<string> result = stringarray.Where(stringarray, o => o.Length == 3);        
                  
foreach (string res in result)
                  
Console.WriteLine(res);

Lamda queries are faster than comprehensive because internally comprehensive queries are converted to lamda queries and executed ahead.

    string[] stringarray = { "Hi", "How", "are", "you","a" };
 
    IEnumerable<string> result = stringarray
                .Where(n => n.Contains("a"))
                .OrderBy(n => n.Length)
                .Select(n => n.ToUpper());
 
    foreach (string i in result)
                Console.Write(i + ",");


Where, OrderBy, Select - Query operators

Execution start from left to right.

Mixing lamda and comprehensive queries:

In same query we can integrate comprehensive and lamda queries.

    string[] stringarray = { "Hi", "How", "are", "you","a" }; 
    int c =    (from n in stringarray
                    where stringarray.Contains("a")
                    select n).Count();
    Console.WriteLine(c);

Login to add your contents and source code to this article
post comment
     

Thanks for sharing .

Posted by Hassan Humayun Aug 19, 2011
COMMENT USING
PREMIUM SPONSORS
DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and add new content to existing PDF documents from within your applications.
Join a Chapter
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Join a Chapter