[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()的使用方法举例的更多相关文章

  1. Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法

    1. 使用find()方法 >>> text = 'yeah, but no, but yeah, but no, but yeah' >>> text.find( ...

  2. Array.prototype.sort()对数组对象排序的方法

    Array.prototype.sort()方法接受一个参数——Function,Function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode code进行 ...

  3. java Collections.sort()实现List排序的默认方法和自定义方法

    1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list. ...

  4. 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 ...

  5. Mysql的“Table 'mysql.servers' doesn't exist”的解决方法

    安装MYSQL后,又一次系统出现问题了,于是我查看mysql的错误日志,竟发现Table 'mysql.servers' doesn't exist问题的错误, 虽然与我的问题无关,但这个问题还是引起 ...

  6. java Collections.sort()实现List排序的默认方法和自定义方法【转】

    1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list. ...

  7. phpcms网站迁移无法更新内容提示Table 'led_com.lz_' doesn't exist的解决方法

    新接的一位客户说要把旧phpcms网站迁移到新的服务器并更换新域名,这对ytkah是小菜一碟,但往往事与愿违,忽略了一些细节会很惨的.进入新站后台怎么都无法生成内容,提示Table 'led_com. ...

  8. re正则match、search、findall、finditer函数方法使用

    match 匹配string 开头,成功返回Match object, 失败返回None,只匹配一个. search 在string中进行搜索,成功返回Match object, 失败返回None, ...

  9. Linux下MySQL报Table 'xxx' doesn't exist错误解决方法,表名存在大小写区分

    Linux服务器上在线装了个MySQL,但是部署web应用时一直报后台一直报错:Table 'xxx' doesn't exist. 本地测试一直都是正常的,同样的代码,同样的数据库,表是存在的,但是 ...

随机推荐

  1. sql server 获取自增列下一个值或者获取指定表的主键值

    IDENT_CURRENT('TableName')为当前的最大标识值, IDENT_INCR('TableName')为设置的标识值增量, 两者相加即为下一个标识值 如: SELECT IDENT_ ...

  2. [转]nodeJS中redis初步使用

    本文转自:https://blog.csdn.net/frankenjoy123/article/details/55209637 Node.js下使用Redis,首先: 1.有一台安装了Redis的 ...

  3. [转]Mysql FROM_UNIXTIME as UTC

    本文转自:https://stackoverflow.com/questions/18276768/mysql-from-unixtime-as-utc You would be better off ...

  4. 前端axios下载excel,并解决axios返回header无法获取所有数据的问题

    需求:通过后端接口下载excel文件,后端没有文件地址,返回二进制流文件 实现:axios(ajax类似) 主要代码: axios:设置返回数据格式为blob或者arraybuffer 如: var ...

  5. oracle表空间大小的限制和DB_BLOCK_SIZE的概念

    之前接触的项目表空间最大也不超过10G,所以导入数据库时一直使用导入本地的oracle数据库文件的方法,即根据dmp文件大小设置一个数据文件,设定表空间最大值. --创建表空间,数据文件为'F:\ap ...

  6. T-SQL:qualify和window 使用(十七)

    1.qualify 是一个潜在的额外筛选器 主要用于对开窗函数的数据筛选 SELECT orderid, orderdate, val, RANK() OVER(ORDER BY val DESC) ...

  7. Transact-SQL解析和基本的实用语句

    SQL语言 DDL(数据定义语句) DML(数据操作语句) DCL(数据控制语句) DDL 数据定义 操作对象 操作方式 创建 删除 修改 模式 CREATE SCHEMA DROP SCHEMA 表 ...

  8. [android] 利用广播实现ip拨号

    广播接收者,broadcast receiver,安卓系统在使用时会产生很多的事件,比如:短信到来,电量低,拨打电话等等 界面布局,线性布局,EditText指定为电话号码,设置属性android:i ...

  9. python学习笔记(四)、条件、循环及其他语句

    1 再谈print和import 1.1 打印多个参数 print 能够同时打印多个表达式,并且能自定义分隔符.如下: print('a','b','c') ——> a b c print('a ...

  10. java_自定义标签,我的第一个自定义标签!

    自定义标签,我的第一个自定义标签! 总共分两步 编写一个实现tag接口的java类,把jsp页面中的java代码移到这个类中,(标签处理器类) 编写标签库描述符(tld)文件,在tld文件中把标签处理 ...