Partilhar via


LINQ: Query vs Lambda Expression

 

LINQ is not just for the developers who used to write queries for databases but also for the Functional Programmers. So do not worry if you are not very comfortable with SQL kind of queries, we have a very nice option called “Lambda Expression”. Here I am going to demonstrate the scenario for both the options with a small example. This example has an array of integers and I am only retrieving the even numbers using the power of LINQ. Here we go

using System;

using System.Collections.Generic;

using System.Text;

using System.Query;

using System.Xml.XLinq;

using System.Data.DLinq;

namespace LINQConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            int[] arrInt = {1,2,3,4,5,6,7,8,9,10};

            #region Place to change

            //Language Integrated Query

            var aa = from s in arrInt

                     where s % 2 == 0

                     select s;

            #endregion

            foreach (var item in aa)

   {

                Console.WriteLine("{0}", item);

            }

            Console.ReadKey();

        }

    }

}

If you do not want to use the different approach of query for Language then you are free to use Lambda Expression. So just replace the #region area with the following code block results will be identical.

            #region Place to change

           

            //Lambda Expression

            var aa = arrInt.Where(s => s % 2 == 0);

            #endregion

Output will look like

Output

=====================

2

4

6

8

10

Namoskar

Comments

  • Anonymous
    December 07, 2006
    This only works in .NET 3.0 right?

  • Anonymous
    December 07, 2006
    This works with .NET 2.0 also. You need to install LINQ for VS 2005 (refer http://blogs.msdn.com/wriju/archive/2006/09/14/753285.aspx) .But LINQ is targeted for .NET Framework 3.5 and Orcas (Visual Studio 2007). Wriju

  • Anonymous
    December 14, 2006
    Interesting discussion on this topic http://programming.reddit.com/info/tzu7/comments

  • Anonymous
    March 19, 2008
    It does not only work in .NET 3.0. It works also in .NET 3.5

  • Anonymous
    November 04, 2009
    @wriju : Visual Studio 2007?  really?  must have slipped past me, that one. :-)

  • Anonymous
    November 07, 2009
    The comment has been removed

  • Anonymous
    April 27, 2010
    Hi , can you provide the lambda expression for this int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };    int[] numbersB = { 1, 3, 5, 7, 8 };    var pairs =        from a in numbersA        from b in numbersB        where a < b        select new { a, b };

  • Anonymous
    December 16, 2013
    Console.WriteLine("Linq Lambda Expression");            string[] names = {"Vicky","Amar","Bala","Sankar","Vimal" };            var filter = names.Select(c => new {Namelength=c.Length,Names=c });            foreach(var v in filter)            {                Console.WriteLine("The Name {0} of Length {1}",v.Names,v.Namelength);            }            int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };            var filter1 = numbers.Where(c => c % 2 == 0).Select(c=>c+1).ToList();            Console.WriteLine(filter1[3]);            filter1.Insert(4, 13);            foreach (var v in filter1)            {                Console.WriteLine(v);            }            Console.ReadKey();