LINQ JOIN

    class Department
    {
        //Auto-implemnted propeties
        public int Id { get; set; }
        public string Name { get; set; }
        public override string ToString()
        {
            return string.Format("{0}", Name);
        }
    }
    class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public int departmentId { get; set; }
        public override string ToString()
        {
            return string.Format("{0} {1}", Name, Title);
        }
    }
    class CorporateData
    {
        public static Department[] departments =
        {
            //Object initializers let you assign values to any accessible fields or properties of an object without having to exlicitly invoke a constructor
             new Department(){ Name = "FMS",Id = 1},
             new Department(){ Name = "MFE",Id =2},
             new Department(){ Name = "BI",Id = 3},
             new Department(){Name = "Detego",Id = 4}
        };
        public static Employee[] employees =
        {
            new Employee () {Id = 1,Name = "PerryDe",Title = "Test Leader",departmentId = 1},
            new Employee () {Id = 2,Name = "Steven Qi",Title = "SDE",departmentId = 1},
            new Employee () {Id = 3,Name = "Guo Hu",Title = "SDE",departmentId = 1},
            new Employee () {Id = 4,Name = "Shan Huo",Title = "SDE",departmentId = 2},
            new Employee () {Id = 5,Name = "Ming Hao",Title = "SDET",departmentId = 3},
            new Employee () {Id = 6,Name = "Xiao Yao",Title = "SDET",departmentId = 3}
        };

    }
    class Program
    {
        static void Main(string[] args)
        {
            IEnumerable<Department> departments = CorporateData.departments;
            Console.WriteLine("Department Name:");
            Print(departments);

            Console.WriteLine();
            IEnumerable<Employee> employees = CorporateData.employees;
            Console.WriteLine("Employee name and title:");
            Print(employees);

            Console.WriteLine();
            Console.WriteLine("Query employee informations using LINQ Join");

            var DepartmentEmployeeInfo = from employee in employees
                                         join department in departments on employee.departmentId equals department.Id
                                         select new
                                         {
                                             employeeName = employee.Name,
                                             employeeTitle = employee.Title,
                                             departmentName = department.Name
                                         };
            foreach (var employee in DepartmentEmployeeInfo)
            {
                Console.WriteLine("{0} {1} {2}", employee.employeeName, employee.employeeTitle, employee.departmentName);
            }
                                         
        }
        public static void Print<T>(IEnumerable<T> item)
        {
            foreach (T t in item)
            {
                Console.WriteLine(t);
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值