博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[C#/ASP.NET]List<>中Sort()、Find()、FindAll()、Exist()的使用方法
阅读量:5754 次
发布时间:2019-06-18

本文共 3072 字,大约阅读时间需要 10 分钟。

[C#/ASP.NET]中List<T>真的非常好用。一个例子简单说明一下List<>中Sort()、Find()、FindAll()、Exist()的使用方法

简单介绍:

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

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

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

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

示例代码:

页面文件GenericList.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ Page
Language=
"C#"
AutoEventWireup=
"true"
CodeFile=
"GenericList.aspx.cs"
Inherits=
"GenericList"
%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD XHTML 1.0
Transitional//EN"
""
>
<html
xmlns=
""
>
<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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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);
   
}
}

 

执行结果:

转自:

转载地址:http://hpckx.baihongyu.com/

你可能感兴趣的文章
php图片赋值,php如何优雅地赋值
查看>>
【探索HTML5第二弹01】HTML5的前世今生以及来世
查看>>
Failed to connect to remote VM. Connection refused. Connection refused: connect
查看>>
freeze
查看>>
SAP HANA存储过程结果视图调用
查看>>
设计模式 ( 十八 ):State状态模式 -- 行为型
查看>>
OracleLinux安装说明
查看>>
nova分析(7)—— nova-scheduler
查看>>
Entity Framework 实体框架的形成之旅--Code First模式中使用 Fluent API 配置(6)
查看>>
OpenMediaVault 搭建git,ssh无法连接问题
查看>>
java多线程之:Java中的ReentrantLock和synchronized两种锁定机制的对比 (转载)
查看>>
【Web动画】SVG 实现复杂线条动画
查看>>
使用Wireshark捕捉USB通信数据
查看>>
Apache Storm 官方文档 —— FAQ
查看>>
iOS 高性能异构滚动视图构建方案 —— LazyScrollView
查看>>
Java 重载、重写、构造函数详解
查看>>
【Best Practice】基于阿里云数加·StreamCompute快速构建网站日志实时分析大屏
查看>>
【云栖大会】探索商业升级之路
查看>>
HybridDB实例新购指南
查看>>
C语言及程序设计提高例程-35 使用指针操作二维数组
查看>>