Thursday, December 21, 2017

Linq Queries By Using Joins in Generics

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace linqwithgenerics
{
    class Program
    {
        class Employee
        {
            public int eno { get; set; }
            public string ename { get; set; }
            public double salary { get; set; }
            public int dno { get; set; }
        }
        class Dept
            {
            public int dno { get; set; }
            public string dname { get; set; }
            }
        static void Main(string[] args)
        {
            List<Employee> emps = new List<Employee>
                                {
                                 new Employee() { eno=101,ename="murali",salary=100,dno=10},
                                 new Employee() { eno=102,ename="krishna",salary=200,dno=20},
                                 new Employee() { eno=103,ename="siva",salary=300,dno=30},
                                 new Employee() { eno=104,ename="nagu",salary=400,dno=40},
                                 new Employee() { eno=105,ename="bhavani",salary=500,dno=30},
                                 new Employee() { eno=106,ename="paidi",salary=600,dno=10},
                                  new Employee() { eno=106,ename="maidi",salary=700,dno=30},
                                };
            List<Dept> depts = new List<Dept>
                               {
                               new Dept() { dno=10,dname="ece"},
                               new Dept() { dno=20,dname="iti"},
                               new Dept() { dno=30,dname="cse"},
                               new Dept() { dno=40,dname="eee"},
                               };

            Console.WriteLine("display eno,ename dname");
            var q1 = from x in emps
                     join y in depts
                     on x.dno equals y.dno
                     select new { x.eno, x.ename, y.dname };
            foreach (var item in q1)
            {
                Console.WriteLine(item.eno+"\t"+item.ename+"\t"+item.dname);
            }

            Console.WriteLine("write a query emp details who is working in cse dept");

            var q2 = from x in emps
                     join y in depts
                     on x.dno equals y.dno
                     where y.dname == "cse"
                     select new { x.ename, x.eno, y.dname };
            foreach (var item in q2)
            {
                Console.WriteLine(item.ename + "\t" + item.eno + "\t" + item.dname);
            }

            Console.WriteLine("write a query emp details who is working in cse dept salary >300");

            var q3 = from x in emps
                     join y in depts
                     on x.dno equals y.dno
                     where y.dname == "cse" && x.salary>300
                     select new { x.ename, x.eno, y.dname ,x.salary};
            foreach (var item in q3)
            {
                Console.WriteLine(item.ename + "\t" + item.eno + "\t" + item.dname+"\t"+item.salary);
            }

            Console.WriteLine("write a query emp details who is working in cse dept salary >300 and whose name start with m");

            var q4 = from x in emps
                     join y in depts
                     on x.dno equals y.dno
                     where y.dname == "cse" && x.salary > 300 && x.ename.StartsWith("m")
                     select new { x.ename, x.eno, y.dname, x.salary };
            foreach (var item in q4)
            {
                Console.WriteLine(item.ename + "\t" + item.eno + "\t" + item.dname + "\t" + item.salary);
            }

        }
    }
}

No comments: