c# linq内联实例

来源:互联网 发布:spss预测数据未来之 编辑:程序博客网 时间:2024/06/03 19:13

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Collections;namespace LinqTest{    public partial class _Default : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                BindStudents();            }        }        /// <summary>        /// Binding the filter list of students.        /// </summary>        private void BindStudents()        {            GridView1.DataSource = GetFilterStudents();            GridView1.DataBind();        }        /// <summary>        /// Get the filter list of students.        /// </summary>        /// <returns></returns>        private IList GetFilterStudents()        {            List<Student> Students = GetStudents();            List<School> Schools = GetSchools();            //inner join            var query = from a in Students                        join b in Schools on a.SchoolID equals b.SchoolID into c                        from b in c.DefaultIfEmpty()                        select new                        {                            StudentID = a.StudentID,                            StudentName = a.StudentName,                            SchoolID = b.SchoolID,                            SchoolName = b.SchoolName                        };            //where            query = query.Where(s => s.SchoolID != 1);            //order by            query = query.OrderByDescending(s => s.StudentID);            return query.ToList();        }        /// <summary>        /// Get the list of students.        /// </summary>        /// <returns></returns>        private List<Student> GetStudents()        {            List<Student> students = new List<Student>();            students.Add(new Student(1, "student1", 1));            students.Add(new Student(2, "student2", 1));            students.Add(new Student(3, "student3", 2));            students.Add(new Student(4, "student4", 2));            students.Add(new Student(5, "student5", 3));            students.Add(new Student(6, "student6", 3));            return students;        }        /// <summary>        /// Get the list of schools.        /// </summary>        /// <returns></returns>        private List<School> GetSchools()        {            List<School> schools = new List<School>();            schools.Add(new School(1,"school1"));            schools.Add(new School(2, "school2"));            schools.Add(new School(3, "school3"));            return schools;        }    }    /// <summary>    /// Class of school.    /// </summary>    public class School    {        public School() { }        public School(int _schoolID, string _schoolName)        {            this.SchoolID = _schoolID;            this.SchoolName = _schoolName;        }        public int SchoolID { get; set; }        public string SchoolName { get; set; }    }    /// <summary>    /// Class of student.    /// </summary>    public class Student    {        public Student() { }        public Student(int _studentID, string _studentName, int _schoolID)        {            this.StudentID = _studentID;            this.StudentName = _studentName;            this.SchoolID = _schoolID;        }        public int StudentID { get; set; }        public string StudentName { get; set; }        public int SchoolID { get; set; }    }}