注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Start Know

自分を信じて、自分で一定でいけます

 
 
 

日志

 
 

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

2009-08-04 11:30:16|  分类: .net |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

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

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

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

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

GenericList.aspx

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GenericList.aspx.cs" Inherits="GenericList" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <title>GenericList</title>  
  8. </head>  
  9. <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>  
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GenericList.aspx.cs" Inherits="GenericList" %> <!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>GenericList</title> </head> <body> <form id="form1" runat="server"> <div> 原始資料: <asp:GridView ID="GridView1" runat="server"> </asp:GridView> </div> </form> </body> </html>

GenericList.aspx.cs

using System;  
  1. using System.Collections.Generic;  
  2. using System.Web;  
  3. using System.Web.UI;  
  4. using System.Web.UI.WebControls;  
  5.   
  6. public partial class GenericList : System.Web.UI.Page  
  7. {  
  8.   
  9.     protected void Page_Load(object sender, EventArgs e)  
  10.     {  
  11.         List<Person> lstPerson = new List<Person>();  
  12.         lstPerson.Add(new Person(1, "puma", 10));  
  13.         lstPerson.Add(new Person(2, "F6 Team", 20));  
  14.         lstPerson.Add(new Person(3, "ASP.NET", 30));  
  15.         lstPerson.Add(new Person(4, "Dotblogs", 40));  
  16.   
  17.         //原始資料顯示在GridView上  
  18.         this.GridView1.DataSource = lstPerson;  
  19.         this.GridView1.DataBind();  
  20.   
  21.   
  22.   
  23.         //List<T>.Find()  
  24.         //找出Name='puma'的Person  
  25.         Response.Write("找出Name='puma'的Person→ ");  
  26.         Response.Write(lstPerson.Find(delegate(Person p) { return p.Name == "puma"; }).ToString() + "<p>");  
  27.   
  28.   
  29.   
  30.         //List<T>.FindAll()  
  31.         //找出Age>10的數目  
  32.         Response.Write("找出Age>10的數目→ ");  
  33.         Response.Write(lstPerson.FindAll(delegate(Person p) { return p.Age > 10; }).Count.ToString() + "<p>");  
  34.   
  35.   
  36.   
  37.         //List<T>.Exists()  
  38.         //檢查Name='F6'是否存在  
  39.         Response.Write("檢查Name='F6'是否存在→ ");  
  40.         Response.Write(lstPerson.Exists(delegate(Person p) { return p.Name == "F6"; }).ToString() + "<p>");  
  41.   
  42.   
  43.   
  44.         //List<T>.Sort()  
  45.         //依Name升冪排序  
  46.         Response.Write("<p>依Name升冪排序↑  
  47. ");  
  48.         lstPerson.Sort(delegate(Person p1, Person p2) { return Comparer<string>.Default.Compare(p1.Name, p2.Name); });  
  49.         foreach (Person p in lstPerson)  
  50.         {  
  51.             Response.Write(p.ToString() + "  
  52. ");  
  53.         }  
  54.   
  55.   
  56.   
  57.         //List<T>.Sort()  
  58.         //依Name降冪排序  
  59.         Response.Write("<p>依Name降冪排序↓  
  60. ");  
  61.         lstPerson.Sort(delegate(Person p1, Person p2) { return Comparer<string>.Default.Compare(p2.Name, p1.Name); });  
  62.         foreach (Person p in lstPerson)  
  63.         {  
  64.             Response.Write(p.ToString() + "  
  65. ");  
  66.         }  
  67.     }  
  68. }  
  69.   
  70. public class Person  
  71. {  
  72.     private int _ID;  
  73.     private string _Name;  
  74.     private int _Age;  
  75.   
  76.     public Person(int ID, string Name, int Age)  
  77.     {  
  78.         _ID = ID;  
  79.         _Name = Name;  
  80.         _Age = Age;  
  81.     }  
  82.   
  83.     public int ID  
  84.     {  
  85.         set { _ID = value; }  
  86.         get { return _ID; }  
  87.     }  
  88.   
  89.     public string Name  
  90.     {  
  91.         set { _Name = value; }  
  92.         get { return _Name; }  
  93.     }  
  94.   
  95.     public int Age  
  96.     {  
  97.         set { _Age = value; }  
  98.         get { return _Age; }  
  99.     }  
  100.   
  101.     public override string ToString()  
  102.     {  
  103.         return string.Format("ID:{0},Name:{1},Age:{2}", _ID, _Name, _Age);  
  104.     }  
  105. }  
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class GenericList : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { List<Person> lstPerson = new List<Person>(); lstPerson.Add(new Person(1, "puma", 10)); lstPerson.Add(new Person(2, "F6 Team", 20)); lstPerson.Add(new Person(3, "ASP.NET", 30)); lstPerson.Add(new Person(4, "Dotblogs", 40)); //原始資料顯示在GridView上 this.GridView1.DataSource = lstPerson; this.GridView1.DataBind(); //List<T>.Find() //找出Name='puma'的Person Response.Write("找出Name='puma'的Person→ "); Response.Write(lstPerson.Find(delegate(Person p) { return p.Name == "puma"; }).ToString() + "<p>"); //List<T>.FindAll() //找出Age>10的數目 Response.Write("找出Age>10的數目→ "); Response.Write(lstPerson.FindAll(delegate(Person p) { return p.Age > 10; }).Count.ToString() + "<p>"); //List<T>.Exists() //檢查Name='F6'是否存在 Response.Write("檢查Name='F6'是否存在→ "); Response.Write(lstPerson.Exists(delegate(Person p) { return p.Name == "F6"; }).ToString() + "<p>"); //List<T>.Sort() //依Name升冪排序 Response.Write("<p>依Name升冪排序↑<br/>"); lstPerson.Sort(delegate(Person p1, Person p2) { return Comparer<string>.Default.Compare(p1.Name, p2.Name); }); foreach (Person p in lstPerson) { Response.Write(p.ToString() + "<br/>"); } //List<T>.Sort() //依Name降冪排序 Response.Write("<p>依Name降冪排序↓<br/>"); lstPerson.Sort(delegate(Person p1, Person p2) { return Comparer<string>.Default.Compare(p2.Name, p1.Name); }); foreach (Person p in lstPerson) { Response.Write(p.ToString() + "<br/>"); } } } public class Person { private int _ID; private string _Name; private int _Age; public Person(int ID, string Name, int Age) { _ID = ID; _Name = Name; _Age = Age; } public int ID { set { _ID = value; } get { return _ID; } } public string Name { set { _Name = value; } get { return _Name; } } public int Age { set { _Age = value; } get { return _Age; } } public override string ToString() { return string.Format("ID:{0},Name:{1},Age:{2}", _ID, _Name, _Age); } }

執行結果:

  评论这张
 
阅读(1519)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017