[C#]List的Sort()、Find()、FindAll()、Exist()的使用方法举例
[C#基础]List的Sort()、Find()、FindAll()、Exist()的使用方法举例
List函数用得还是比较多的,正好用到其中的向个方法,做了一个例程,再总结一下:
先建一个学生类:

public class student
{
public int Number { get; set; }
public string Name { get; set; }
public bool Sex { get; set; }
public student(int _number, string _name, bool _sex)
{
Number = _number;
Name = _name;
Sex = _sex;
}
public override string ToString()
{
return string.Format("序号:{0},姓名:{1},性别:{2}",
Number.ToString(), Name, Sex ? "男" : "女");
}
}

例程代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace ListSortTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} List<student> Students = new List<student>();
private void Form1_Load(object sender, EventArgs e)
{ Students.Add(new student(1, "张一", true));
Students.Add(new student(3, "张二", false));
Students.Add(new student(5, "张三", true));
Students.Add(new student(2, "张四", false));
Students.Add(new student(4, "张五", true));
Students.Add(new student(6, "张六", false));
}
//排序按钮
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text += "**原始显示:\r\n";
showList(Students); richTextBox1.Text += "\r\n**用序号排序从小到大显示:\r\n";
Students.Sort((x, y) => x.Number < y.Number ? -1 : 0);
showList(Students); richTextBox1.Text += "\r\n**用序号排序从大到小显示:\r\n";
Students.Sort((x, y) => x.Number > y.Number ? -1 : 0);
showList(Students); richTextBox1.Text += "\r\n**用姓名排序(升序)显示:\r\n";
Students.Sort((x, y) => x.Name.CompareTo(y.Name));
showList(Students); richTextBox1.Text += "\r\n**用姓名排序(降序)显示:\r\n";
Students.Sort((x, y) => y.Name.CompareTo(x.Name));
showList(Students); richTextBox1.Text += "\r\n**用性别排序(升序)显示:\r\n";
Students.Sort((x, y) => x.Sex.CompareTo(y.Sex));
showList(Students);
} private void showList(List<student> _list)
{
for (int i = 0; i < _list.Count; i++)
{
richTextBox1.Text += _list[i].ToString() + "\r\n";
}
} private void button2_Click(object sender, EventArgs e)
{
richTextBox1.Text += "\r\n**找出Name=\"张四\"的学生:\r\n";
richTextBox1.Text += Students.Find((student s) => s.Name == "张四").ToString(); richTextBox1.Text += "\r\n\r\n**找出第一个男学生:";
richTextBox1.Text += "(该方法只会找到第一个就停止)\r\n";
richTextBox1.Text += Students.Find((student s) => s.Sex == true).ToString(); richTextBox1.Text += "\r\n\r\n**找出所有女学生:\r\n";
showList(Students.FindAll((student s) => s.Sex == false)); richTextBox1.Text += "\r\n\r\n**判断“张四”学生是否存在:\r\n";
richTextBox1.Text += Students.Exists((student s) => s.Name == "张四" ? true : false).ToString(); }
}
}

通过以上代码测试,排序效果如下:

其它功能显示如图(欢迎访问http://www.cnblogs.com/dooroo)

[C#]List的Sort()、Find()、FindAll()、Exist()的使用方法举例的更多相关文章
- Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法
1. 使用find()方法 >>> text = 'yeah, but no, but yeah, but no, but yeah' >>> text.find( ...
- Array.prototype.sort()对数组对象排序的方法
Array.prototype.sort()方法接受一个参数——Function,Function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode code进行 ...
- java Collections.sort()实现List排序的默认方法和自定义方法
1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list. ...
- ORA-12805: parallel query server died unexpectedly ORA-04030 (sort subheap,sort key) 原因排查与解决方法
今日,某服务器pga调整为30G,_pga_max_size调整为8G之后(原来是2G,但是one passes语句较多,性能太低),执行出现ORA-12805: parallel query ser ...
- Mysql的“Table 'mysql.servers' doesn't exist”的解决方法
安装MYSQL后,又一次系统出现问题了,于是我查看mysql的错误日志,竟发现Table 'mysql.servers' doesn't exist问题的错误, 虽然与我的问题无关,但这个问题还是引起 ...
- java Collections.sort()实现List排序的默认方法和自定义方法【转】
1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list. ...
- phpcms网站迁移无法更新内容提示Table 'led_com.lz_' doesn't exist的解决方法
新接的一位客户说要把旧phpcms网站迁移到新的服务器并更换新域名,这对ytkah是小菜一碟,但往往事与愿违,忽略了一些细节会很惨的.进入新站后台怎么都无法生成内容,提示Table 'led_com. ...
- re正则match、search、findall、finditer函数方法使用
match 匹配string 开头,成功返回Match object, 失败返回None,只匹配一个. search 在string中进行搜索,成功返回Match object, 失败返回None, ...
- Linux下MySQL报Table 'xxx' doesn't exist错误解决方法,表名存在大小写区分
Linux服务器上在线装了个MySQL,但是部署web应用时一直报后台一直报错:Table 'xxx' doesn't exist. 本地测试一直都是正常的,同样的代码,同样的数据库,表是存在的,但是 ...
随机推荐
- 搭建私有CA服务器
1 CA是什么 CA(Certificate Authority)证书颁发机构主要负责证书的颁发.管理以及归档和吊销.证书内包含了拥有证书者的姓名.地址.电子邮件帐号.公钥.证书有效期.发放证书的CA ...
- Vc数据库编程基础MySql数据库的表查询功能
Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...
- TCP可靠数据传输
TCP可靠数据传输 在TCP在IP不可靠的尽力而为的服务之上,创建了一条可靠数据传输服务(reliable data transfer service).TCP提供的可靠数据传输的方法涉及到可靠数 ...
- 记录一下对swiper4.x.js在H5单页中的滑动优化
应用场景 仅仅应用于单页应用的滑动操作,用swiper4.x接管页面的滚动操作.用来支持顶部和尾部的回弹效果,进一步来支持常见那种下拉刷新动画效果.不适用于轮播图那种应用场景. 虽然只是针对swipe ...
- iOS高效裁剪图片圆角算法
项目有个需求:裁剪图片,针对头像,下面是要求: 大家可以看到这张图片的圆角已经去除,下面说说我在项目利用了两种方式实现此裁剪以及查看技术文档发现更高效裁剪方式,下面一一讲解:看下来大约需要15-20分 ...
- sqlserver count(1),count(*),count(列名) 详解
sqlserver数据库 count(1),count(*),count(列名) 的执行区别 count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL count(1)包括 ...
- Java Date类的使用总结
Date类表示特定的瞬间,精确到毫秒. 有2种方法可以创建Date对象(这里不考虑已过时的构造函数) 1.public Date()——分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫 ...
- javascript html页面中的内容替换
<script language="javascript"> function ffRed(){ var xsxf = document.getElementById ...
- redirection in linux
2>&1 # Redirects stderr to stdout. # Error messages get sent to same place as standard output ...
- Laravel篇二之本地版本库关联github
以往的工作中都是使用svn作为版本控制,对git分布式的有些陌生,本篇主要记录的本地存储myWeb-laravel的git版本库与github建立关联. 1.首先进入本地myWeb-laravel,执 ...