[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. 【EF6学习笔记】(十)处理并发

    本篇原文链接:Handling Concurrency Concurrency Conflicts 并发冲突 发生并发冲突很简单,一个用户点开一条数据进行编辑,另外一个用户同时也点开这条数据进行编辑, ...

  2. 【原创】Github团队协作之Pull请求

    首先声明:Github上关于代码团队协作方式有很多种,这里只讲述Github上其中的一种代码团队协作方式.   Pull请求(Pull request) 1 综述     协作者通过fork一个新的代 ...

  3. python三大神器之fabric(2.0新特性)

    fabric经常出现在自动化运维领域,批量处理一些运维工作.fabric是在paramiko之上又封装了一层,操作起来更加简单易用. 本来只是想写个博客记录一下,然后发现之前写的代码不能运行了,报以下 ...

  4. [转]NET Core静态文件的缓存方式

    本文转自:https://www.cnblogs.com/Leo_wl/p/6059349.html 阅读目录 NET Core静态文件的缓存方式 一.前言 二.StaticFileMiddlewar ...

  5. PHP开发中bcscale timezone charset的设定

    关于php的开发,有几个细节设定,需要知悉下:在项目的init.php 或 index.php 或 api.php 1. bcscale(18); 表示bc函数,默认小数点位数. 没有设定的话,默认为 ...

  6. Docker镜像目录无法删除

    docker pull下来的镜像目录默认放在:C:\ProgramData\docker\windowsfilter.由于拉下来的镜像已经几乎占满了C盘的空间,准备删除所有的镜像,却发现删除不掉. 搜 ...

  7. 老王带你走过 Kafka 入门教程

    Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发. Linkedin于2010年贡献 ...

  8. jquery中找到元素在数组中位置,添加或者删除元素的新方法

    一:查找元素在数组中的位置 jQuery.inArray()函数用于在数组中搜索指定的值,并返回其索引值.如果数组中不存在该值,则返回 -1. jQuery.inArray( value, array ...

  9. ASP.NET MVC 使用Jquery异步操作JS代码

    $(function () { var ajaxFormSubmit = function () { var $form = $(this); var options = { url: $form.a ...

  10. 前端入门2-HTML标签

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 声明 本系列文章内容全部梳理自以下四个来源: <HTML5权威指南> <JavaScript权威指南> MD ...