【C#】List高级用法之Sort(), Find() , FindAll() ,Exists()实际应用

一、本篇博客的主要内容

在这里插入图片描述

二、代码

1、person类
public class Person
{

    /// <summary>
    /// 年龄
    /// </summary>
    public int Age { get; set; }

    /// <summary>
    /// 名字
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 性别
    /// </summary>
    public bool Sex { get; set; }


    public Person(int age, string name, bool sex)
    {
        Age = age;
        Name = name;
        Sex = sex;
    }

    /// <summary>
    /// 重写Tostring方法,实现要显示内容的格式
    /// </summary>
    /// <returns></returns>
    public override string ToString()
    {
        return string.Format("年龄:{0},性名:{1},性别:{2}", Age.ToString(), Name, Sex ? "男":"女");
    }
}
2、窗体

在这里插入图片描述

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    List<Person> person = new List<Person>();

    private void Form1_Load(object sender, EventArgs e)
    {
        #region 给list添加成员
        person.Add(new Person(18, "光哥", true));
        person.Add(new Person(28, "兵哥哥", true));
        person.Add(new Person(22, "凡哥", true));
        person.Add(new Person(22, "平平", false));
        person.Add(new Person(23, "小蘑菇", false));
        person.Add(new Person(23, "小破颖", false));
        person.Add(new Person(28, "金泽", true));
        person.Add(new Person(26, "慧鹏", true));
        person.Add(new Person(24, "招子", true)); 
        #endregion
    }


    /// <summary>
    /// 英文排序与数字排序, Lambda 表达式
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button1_Click(object sender, EventArgs e)
    {
        showContent.Text += "初始化序列:\r\n";
        ShowList(person);

        showContent.Text += "\r\n按照年零从大到小排\r\n";
        person.Sort((x, y) => x.Age < y.Age ? -1 : 0);
        ShowList(person);

        showContent.Text += "\r\n按照姓名首字母升序排序\r\n";
        person.Sort((x, y) => x.Name.CompareTo(y.Name));
        ShowList(person);
    }

    /// <summary>
    /// 显示内容
    /// </summary>
    /// <param name="list"></param>
    private void ShowList(List<Person> list)
    {
        for (int i = 0; i < list.Count; i++)
        {
            showContent.Text += list[i].ToString() + "\r\n";
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        showContent.Text+= "\r\n**找出Name=\"金泽\"的人:\r\n";
        showContent.Text += person.Find((Person p) =>p.Name == "金泽").ToString();

        showContent.Text += "\r\n\r\n**找出第一个男孩:";
        showContent.Text +=person.Find((Person p)=>p.Sex==true).ToString();

        showContent.Text += "\r\n\r\n**找出所有男孩:";
        showContent.Text += person.FindAll((Person p) => p.Sex == true).ToString();
        List<Person> a = new List<Person>();
               
        showContent.Text += "\r\n\r\n**判断“小破颖”是否存在:\r\n";
        showContent.Text += person.Exists((Person p) => p.Name == "小破颖" ? true : false).ToString();
    }
}

三 、样式展示

1、list的sort方法

list中存了很多条记录或者很多个对象, 此时我们可以根据对象的某些属性进行排序,它提供了一个数字的排序,一个字符串拼音排序:
在这里插入图片描述

2、list的find,findAll,exists的用法

在这里插入图片描述

后记:

如果很需要,希望可以照着敲一下,博主也是照着敲的,边敲边看帮助文档,就会明白了,里面涉及到了Lambda表达式,本篇博客没有进行细致的讲解,之后的博客会有详细的讲解。

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值