您的位置:首页 > 编程语言 > ASP

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

2011-06-26 16:28 495 查看
最近寫案子常常用到List<T>,這個東西還真好用

因為它有下列東西:

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

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

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

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

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

GenericList.aspx

01
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="GenericList.aspx.cs"Inherits="GenericList"%>
02
03
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//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,EventArgse)
011
{
012
List<Person>lstPerson=
new
List<Person>();
013
lstPerson.Add(
new
Person(1,
"puma"
,10));
014
lstPerson.Add(
new
Person(2,
"F6Team"
,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
(Personp){
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
(Personp){
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
(Personp){
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
(Personp1,Personp2){
return
Comparer<
string
>.Default.Compare(p1.Name,p2.Name);});
049
foreach
(Personp
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
(Personp1,Personp2){
return
Comparer<
string
>.Default.Compare(p2.Name,p1.Name);});
060
foreach
(Personp
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);
}
102
}
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Data.SqlClient;
usingSystem.Data;
usingSqlServerHelper;
usingLogisticsMODEL;
usingLogisticsDAL;
usingUntity;
usingSystem.Text;
namespaceLogisticsBLL
{

publicclassB_Sys_Region:IB_Sys_Region
{
publicstaticIList<M_Sys_Region>GetProvince()
{
returnGetRegionList().FindAll(delegate(M_Sys_Regionm){returnm.Parentid==0;});
}
publicstaticIList<M_Sys_Region>GetRegionList(intparentid)
{
returnGetRegionList().FindAll(delegate(M_Sys_Regionm){returnm.Parentid==parentid;});
}
///<summary>
///根据编码查询地区名称
///</summary>
///<paramname="_Codeid"></param>
///<returns></returns>
publicstaticM_Sys_RegionGetRegionModes(int_Codeid)
{
Dictionary<int,M_Sys_Region>d_Region=CacheHelper.GetCache(B_CacheKey.Sys_Region_Dictionary)asDictionary<int,M_Sys_Region>;
if(d_Region==null)
{
d_Region=newDictionary<int,M_Sys_Region>();
IList<M_Sys_Region>_RegionList=newB_Sys_Region().SelectDataWhere(null);
foreach(M_Sys_Regionsys_RegionModelin_RegionList)
{
d_Region.Add(sys_RegionModel.Codeid.Value,sys_RegionModel);
}
}
M_Sys_Region_M_Sys_Region=newM_Sys_Region();
returnd_Region.TryGetValue(_Codeid,out_M_Sys_Region)?_M_Sys_Region:null;
}

///<summary>
///模糊搜索地区返回地球对象和地区级别
///</summary>
///<paramname="name">地区名称</param>
///<paramname="lv">1表示省2城市3表示区县</param>
///<returns></returns>
publicstaticM_Sys_RegionGetRegionLikeModel(stringname,outintlv){
lv=-1;
constintProvince=2;//省的编号长度
constintCity=4;//市的编号长度
constintCounty=6;//县区的编号长度

M_Sys_Region_M_Sys_Region=GetRegionList().Find(delegate(M_Sys_Regionm){returnm.Name.IndexOf(name)>-1;});
if(_M_Sys_Region!=null&&_M_Sys_Region.Codeid!=null)
{
switch(_M_Sys_Region.Codeid.Value.ToString().Length)
{

caseProvince:lv=1;break;
caseCity:lv=2;break;
caseCounty:lv=3;break;
}
}
return_M_Sys_Region;
}

publicstaticList<M_Sys_Region>GetRegionList()
{
List<M_Sys_Region>syslist=CacheHelper.GetCache(B_CacheKey.Sys_Region)asList<M_Sys_Region>;
if(syslist==null)
{
syslist=newB_Sys_Region().SelectDataWhere(null)asList<M_Sys_Region>;
CacheHelper.SetCache(B_CacheKey.Sys_Region,syslist);
}
returnsyslist;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: