c# list 查询和排序

来源:互联网 发布:智商和情商 知乎 编辑:程序博客网 时间:2024/06/11 19:32

1)前台代码(default.aspx)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ListTest.Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>        <asp:GridView ID="gvwStudent" runat="server">        </asp:GridView>    </div>    </form></body></html>

2)后台代码

a)default.aspx.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace ListTest{    public partial class Default : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                BindStudent();            }        }        /// <summary>        /// 绑定student        /// </summary>        private void BindStudent()        {            gvwStudent.DataSource = SortItems();            gvwStudent.DataBind();        }        /// <summary>        /// 根据id排序        /// </summary>        /// <returns></returns>        private List<Student> SortItems()        {            List<Student> items = GetItems();            items.Sort();            return items;        }        /// <summary>        /// 根据name和sex获取students        /// </summary>        /// <returns></returns>        private IEnumerable<Student> GetItemsByNameAndSex()        {            IEnumerable<Student> items = GetItems().Where(u => u.Name == "lisi"&&u.Sex=="female");            return items;        }        /// <summary>        /// 根据id获取student        /// </summary>        /// <returns></returns>        private Student GetItemById()        {            Student item = GetItems().SingleOrDefault(u => u.Id == 3);            return item;        }        /// <summary>        /// 获取所有的student        /// </summary>        /// <returns></returns>        private List<Student> GetItems()        {            List<Student> items = new List<Student>();            items.Add(new Student(3,"zhangsan","male"));            items.Add(new Student(1,"lisi","female"));            items.Add(new Student(2,"wangwu","female"));            items.Add(new Student(4,"lisi","male"));            return items;        }    }}


b)Student.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace ListTest{    public class Student:IComparable    {        public Student(int id, string name,string sex)        {            this.Id = id;            this.Name = name;            this.Sex = sex;        }        private int id;        public int Id        {            get { return id; }            set { id = value; }        }        private string name;        public string Name        {            get { return name; }            set { name = value; }        }        private string sex;        public string Sex        {            get { return sex; }            set { sex = value; }        }        /// <summary>        /// 根据id排序        /// </summary>        /// <param name="obj"></param>        /// <returns></returns>        public int CompareTo(object obj)        {            if (obj is Student)            {                Student anotherItem = obj as Student;                return this.Id - anotherItem.Id;//asc                //return anotherItem.Id - this.Id; //desc            }            throw new ArgumentException("object is not a student");        }    }}


原创粉丝点击