示例#1
0
        static void Main(string[] args)
        {
            List <int> item1 = new List <int> {
                1, 2, 3, 4, 4, 5, 8, 1, 2
            };
            var t = item1.FirstOrDefault(x => x > 12);
            List <MainEmployee> allEMp = new List <MainEmployee>();

            allEMp.Add(new Intern());
            allEMp.Add(new ContractEmp());
            allEMp.Add(new FullTimeEmp());

            var resi     = allEMp.OfType <ContractEmp>();
            var resiFull = allEMp.OfType <FullTimeEmp>();


            foreach (var item in item1.Distinct())
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
            var empCollection = OfficeEmployee.GetEmployeeDetails();

            var ordereddEmpCollection = empCollection.OrderByDescending(x => x.Salary);

            foreach (var item in ordereddEmpCollection)
            {
                Console.WriteLine($"Name {item.Name}, Salary {item.Salary}");
            }

            Console.ReadKey();


            var groupQuery = empCollection.GroupBy(emp => new { Manager = emp.ManagerId, Gender = emp.Gender });

            foreach (var group in groupQuery)
            {
                Console.WriteLine(group.Key);
                foreach (var emp in group)
                {
                    Console.WriteLine($"Name {emp.Name} , Gender {emp.Gender}");
                }
            }
            Console.ReadKey();
            //var innerQuery = from emp in empCollection
            //                 join man in manCollection
            //                 on emp.ManagerId equals man.Id into empManGroup
            //                 select emp;

            var innerQuery = empCollection.OrderBy(x => x.Salary);

            foreach (var item in innerQuery)
            {
                Console.WriteLine($"Employee Id {item.Id} and employee name {item.Name} with manager id {item.Salary}");
            }

            Console.ReadKey();
        }
示例#2
0
        private static void UnionAndIntersect()
        {
            var employees    = OfficeEmployee.GetEmployeeDetails();
            var newEmployees = OfficeEmployee.GetEmployeeDetailsNew();

            var emp = employees.Union(newEmployees, new EmployeeComparer()).ToList();

            var intersetct = employees.Intersect(newEmployees, new EmployeeComparer());
        }
示例#3
0
        private static void GroupOperation()
        {
            var employees = OfficeEmployee.GetEmployeeDetails();

            var grpLambda = employees.GroupBy(x => new { x.Gender, x.Salary }).OrderBy(x => x.Key.Salary).ThenByDescending(x => x.Key.Gender)
                            .Select(x => new { Employees = x, Gender = x.Key.Gender, Salary = x.Key.Salary });


            var grpQuery = from emp in employees
                           group emp by new { emp.Gender, emp.Salary } into empGroup
            orderby empGroup.Key.Salary ascending, empGroup.Key.Gender descending
                select new { Salary = empGroup.Key.Salary, Gender = empGroup.Key.Gender, Emp = empGroup };
        }
示例#4
0
        static void Main(string[] args)
        {
            var employeeCollection = OfficeEmployee.GetEmployeeDetails();

            IEnumerable <OfficeEmployee> maleEmployee = employeeCollection.Where(emp => emp.Gender.Equals(Gender.male));

            foreach (var item in maleEmployee)
            {
                Console.WriteLine(item.Name);
            }

            Console.ReadKey();
        }
示例#5
0
        private static void GroupJoinAndInnerJoin()
        {
            var employees = OfficeEmployee.GetEmployeeDetails();
            var managers  = Manager.GetManagers();

            var linqEmpBob = from emp in employees
                             join manager in managers
                             on emp.ManagerId equals manager.Id into grp
                             select grp;


            var bobEmployees = employees.Join(managers, emp => emp.ManagerId, manager => manager.Id, (emp, manager) => manager).Where(x => x.Id == 1);

            var groupEmployees = employees.GroupJoin(managers, emp => emp.ManagerId, manager => manager.Id, (emp, manager) => manager);
        }
示例#6
0
        private static void UnionAndIntersect()
        {
            var employees    = OfficeEmployee.GetEmployeeDetails();
            var newEmployees = OfficeEmployee.GetEmployeeDetailsNew();


            var empUnion = employees.Union(newEmployees, new EmployeeComparer()).ToList();

            foreach (var item in empUnion)
            {
                Console.WriteLine(item.Name);
            }
            Console.ReadLine();

            var intersetct = employees.Intersect(newEmployees, new EmployeeComparer());
        }
示例#7
0
        private static void MultipleGroupBy()
        {
            var empCollection = OfficeEmployee.GetEmployeeDetails();

            var groupCollection = empCollection.GroupBy(emp => new { Gender = emp.Gender, ManagerId = emp.ManagerId });

            foreach (var groupName in groupCollection)
            {
                string mangerId = "No Manager allocated";
                if (groupName.Key.ManagerId != 0)
                {
                    mangerId = groupName.Key.ManagerId.ToString();
                }

                Console.WriteLine("\n Total Count of employees under Manager Id " + mangerId + " and which are " + groupName.Key.Gender + " is " + groupName.Count());
                foreach (var elementsInGroup in groupName)
                {
                    Console.WriteLine("\t" + elementsInGroup.Name);
                }
            }
        }
示例#8
0
 public static int FormADictionary(OfficeEmployee officeEmployee)
 {
     return(officeEmployee.Id);
 }
示例#9
0
 public static void AddEmployee(OfficeEmployee officeEmployee)
 {
     _officeEmployees.Add(officeEmployee);
 }