Showing posts with label LINQ with Lambda Expressions. Show all posts
Showing posts with label LINQ with Lambda Expressions. Show all posts

Wednesday, April 2, 2014

LINQ With Lambda Expressions

LINQ With Lambda Expressions

  • LINQ queries can be written in two syntaxes:
    1.  General Query Syntax
    2.  Lambda Expression Syntax
  • The previously written applications are written with General Query Syntax.
  • Syntax for Lambda Expression:
DataSource.Clause(DataAliasName => Expression)
  • Ex:  stu.Where(s => s.Marks < 300)
Program with LINQ to LAMBDA EXPRESSIONS
Student.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LINQtoObjectsDemo
{
   class Student
    {
      //fields
        public int StudentID;
        public string Name;
        public string Course;
        public int Marks;
     //constructor
        public Student(int StudentID, string Name, string Course, int Marks)
         {
            this.StudentID = StudentID;
            this.Name = Name;
            this.Course = Course;
            this.Marks = Marks;
        }
    }
}

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LINQwithLambaExpressions
{
  class Program
   {
     static void Main(string[] args)
      {
        //data source
          Student[] stu = { new Student(101, "Prakash", "MBA", 765),
                                    new Student(102, "Pradeep", "MBA", 471),
                                    new Student(103, "Pushpa", "Msc", 590),
                                    new Student(104, "Purna", "MCA", 223),
                                     new Student(105, "Purnima", "MCA", 450)};
       //linq query with where clause
         IEnumerable result1 = stu.Where(s => s.Course == "MCA");
         Console.WriteLine("MCA Students:");
         foreach (Student r in result1)
         Console.WriteLine(r.StudentID + ", " + r.Name + ", " + r.Course + ", " + r.Marks);
       //linq query with compound where clause
         IEnumerable result2 = stu.Where(s => s.Name.EndsWith("a") && s.Marks >= 400 &&                                                                 s.Marks <= 600);
         Console.WriteLine("\nStudents whose name ends with 'a', and marks is >=400 and <=600:");
         foreach (Student r in result2)
         Console.WriteLine(r.StudentID + ", " + r.Name + ", " + r.Course + ", " + r.Marks);
       //linq query with orderby clause
         IEnumerable result4 = stu.OrderBy(s => s.Marks);
         Console.WriteLine("\nStudents (sort on marks):");
         foreach (Student r in result4)
         Console.WriteLine(r.StudentID + ", " + r.Name + ", " + r.Course + ", " + r.Marks);
       //linq query with orderby clause (descending)
         IEnumerable result5 = stu.OrderByDescending(s => s.Marks);
         Console.WriteLine("\nStudents (sort on marks - descending):");
         foreach (Student r in result5)
         Console.WriteLine(r.StudentID + ", " + r.Name + ", " + r.Course + ", " + r.Marks);
       //linq query with group clause
         IEnumerable> result6 = stu.GroupBy(s => s.Course);
          Console.WriteLine("\nStudents with grouping:");
          foreach (IGrouping> StuGrp in  result6)
           {
             Console.WriteLine(StuGrp.Key + ":");
              foreach (Student r in StuGrp)
             Console.WriteLine(" " + r.StudentID + ", " + r.Name + ", " + r.Course + ", " + r.Marks);
            }
            Console.Read();
        }
    }
}
Previous Page : LINQ
Flag Counter