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

    [ASP.NET]利用List的Sort()、Find()、FindAll()、Exist()來解決一些問題

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

    最近寫案子常常用到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  
    05 <html xmlns="http://www.w3.org/1999/xhtml">
    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

    001 using System;
    002 using System.Collections.Generic;
    003 using System.Web;
    004 using System.Web.UI;
    005 using System.Web.UI.WebControls;
    006  
    007 public 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) { returnComparer<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) { returnComparer<string>.Default.Compare(p2.Name, p1.Name); });
    060         foreach (Person p in lstPerson)
    061         {
    062             Response.Write(p.ToString() + "<br/>");
    063         }
    064     }
    065 }
    066  
    067 public 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

  • 相关阅读:
    WCF 4.0中的动态发现服务WSDiscovery
    Windows Server 2008 R2 Server Core
    Open Source Web Design
    Windows Identity Foundation(WIF)正式发布
    是开始学习IronPython 的时候了
    IronPython 承载和消费WCF服务
    微博客程序 Yonkly
    如何启用匿名访问SQL Server Reporting Service 2008
    ASP.NET MVC 2 RC 发布
    SharePoint 2010 VHD下载
  • 原文地址:https://www.cnblogs.com/Koy/p/1782906.html
Copyright © 2011-2022 走看看