zoukankan      html  css  js  c++  java
  • 利用List的Sort()、Find()、FindAll()、Exist()來解決一些問題

    原文地址:

    http://www.dotblogs.com.tw/puma/archive/2009/05/28/asp.net-generic-list-sort-find-findall-exsit.aspx#12190

    最近寫案子常常用到List<T>,這個東西還真好用

    因為它有下列東西:

    List<T>.Sort() → 排序T

    List<T>.Find() → 找出一個T

    List<T>.FindAll() →找出多個T

    List<T>.Exist() →判斷T是否存在

    小弟就寫個範例介紹這些東西吧..

    GenericList.aspx

    01<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GenericList.aspx.cs" Inherits="GenericList" %>
    02 
    03<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    04 
    06<head runat="server">
    07    <title>GenericList</title>
    08</head>
    09<body>
    10    <form id="form1" runat="server">
    11    <div>
    12        原始資料:
    13        <asp:GridView ID="GridView1" runat="server">
    14        </asp:GridView>
    15    </div>
    16    </form>
    17</body>
    18</html>

    GenericList.aspx.cs

    001using System;
    002using System.Collections.Generic;
    003using System.Web;
    004using System.Web.UI;
    005using System.Web.UI.WebControls;
    006 
    007public partial class GenericList : System.Web.UI.Page
    008{
    009 
    010    protected void Page_Load(object sender, EventArgs e)
    011    {
    012        List<Person> lstPerson = new List<Person>();
    013        lstPerson.Add(new Person(1, "puma", 10));
    014        lstPerson.Add(new Person(2, "F6 Team", 20));
    015        lstPerson.Add(new Person(3, "ASP.NET", 30));
    016        lstPerson.Add(new Person(4, "Dotblogs", 40));
    017 
    018        //原始資料顯示在GridView上
    019        this.GridView1.DataSource = lstPerson;
    020        this.GridView1.DataBind();
    021 
    022 
    023 
    024        //List<T>.Find()
    025        //找出Name='puma'的Person
    026        Response.Write("找出Name='puma'的Person→ ");
    027        Response.Write(lstPerson.Find(delegate(Person p) { return p.Name == "puma"; }).ToString() + "<p>");
    028 
    029 
    030 
    031        //List<T>.FindAll()
    032        //找出Age>10的數目
    033        Response.Write("找出Age>10的數目→ ");
    034        Response.Write(lstPerson.FindAll(delegate(Person p) { return p.Age > 10; }).Count.ToString() + "<p>");
    035 
    036 
    037 
    038        //List<T>.Exists()
    039        //檢查Name='F6'是否存在
    040        Response.Write("檢查Name='F6'是否存在→ ");
    041        Response.Write(lstPerson.Exists(delegate(Person p) { return p.Name == "F6"; }).ToString() + "<p>");
    042 
    043 
    044 
    045        //List<T>.Sort()
    046        //依Name升冪排序
    047        Response.Write("<p>依Name升冪排序↑<br/>");
    048        lstPerson.Sort(delegate(Person p1, Person p2) { return Comparer<string>.Default.Compare(p1.Name, p2.Name); });
    049        foreach (Person p in lstPerson)
    050        {
    051            Response.Write(p.ToString() + "<br/>");
    052        }
    053 
    054 
    055 
    056        //List<T>.Sort()
    057        //依Name降冪排序
    058        Response.Write("<p>依Name降冪排序↓<br/>");
    059        lstPerson.Sort(delegate(Person p1, Person p2) { return Comparer<string>.Default.Compare(p2.Name, p1.Name); });
    060        foreach (Person p in lstPerson)
    061        {
    062            Response.Write(p.ToString() + "<br/>");
    063        }
    064    }
    065}
    066 
    067public class Person
    068{
    069    private int _ID;
    070    private string _Name;
    071    private int _Age;
    072 
    073    public Person(int ID, string Name, int Age)
    074    {
    075        _ID = ID;
    076        _Name = Name;
    077        _Age = Age;
    078    }
    079 
    080    public int ID
    081    {
    082        set { _ID = value; }
    083        get { return _ID; }
    084    }
    085 
    086    public string Name
    087    {
    088        set { _Name = value; }
    089        get { return _Name; }
    090    }
    091 
    092    public int Age
    093    {
    094        set { _Age = value; }
    095        get { return _Age; }
    096    }
    097 
    098    public override string ToString()
    099    {
    100        return string.Format("ID:{0},Name:{1},Age:{2}", _ID, _Name, _Age);
    101    }
    102}

    執行結果:

    參考網址:
    http://blogs.msdn.com/kcwalina/archive/2004/06/22/162533.aspx
    http://www.dotblogs.com.tw/chhuang/archive/2008/05/08/3908.aspx
  • 相关阅读:
    【Py】Python的调包日常——网络类
    【Py】Python的调包日常——转码类
    第09组 Beta冲刺(3/5)
    第09组 Beta冲刺(2/5)
    第09组 Beta冲刺(1/5)
    第09组 Alpha事后诸葛亮
    第09组 Alpha冲刺(6/6)
    第09组 Alpha冲刺(5/6)
    第09组 Alpha冲刺(4/6)
    第09组 Alpha冲刺(3/6)
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/1629655.html
Copyright © 2011-2022 走看看