C# List 的 Find方法、FindLast方法、FindAll方法、FindIndex方法


一個簡單類


//學生
public class Student
{
    private int id;//id
    private string name;//姓名
    private int student_//學號
    public int ID
    {
        get { return id; }
        set { id = value; }
  
    public string NAME
    {
        get { return name; }
        set { name = value; }
  
    public int STUDENT_ID
    {
        get { return student_id; }
        set { student_id = value; }
    }
}

賦值

    Student student = new Student();
    List<Student> list = new List<Student>();
    for (int i = 0; i < 20; i++)
    {
        student.ID = i;
        student.NAME = "學生" + i;
        student.STUDENT_ID = 2000 + i;
        list.Add(student);
        student = new Student();
    }

1、使用Find

`public T Find(Predicate match) { ... }
查找學生姓名是"學生15"的學生

    Student result1 = list.Find((Student s) => s.NAME == "學生15");
    Console.WriteLine(@"ID:{0};姓名:{1};學號:{2}", result1.ID, 
result1.NAME, result1.STUDENT_ID);
    Console.ReadKey();
    Console.WriteLine();

結果:
ID:15;姓名:學生15;學號:2015

2、使用FindAll

public List<T> FindAll(Predicate<T> match)
查找所有ID大於10的學生

    List<Student> result2 = list.FindAll((s) => { return s.ID > 10; });
    foreach (var item in result2)
    {
        Console.WriteLine(@"ID:{0};姓名:{1};學號:{2}", item.ID, 
item.NAME, item.STUDENT_ID);
    }
    Console.ReadKey();
    Console.WriteLine();

結果:
ID:11;姓名:學生11;學號:2011
ID:12;姓名:學生12;學號:2012
ID:13;姓名:學生13;學號:2013
ID:14;姓名:學生14;學號:2014
ID:15;姓名:學生15;學號:2015
ID:16;姓名:學生16;學號:2016
ID:17;姓名:學生17;學號:2017
ID:18;姓名:學生18;學號:2018
ID:19;姓名:學生19;學號:2019

3、使用FindLast

public T FindLast(Predicate<T> match)
找到最后一個(最新一個)姓名里面有1的

    Student result3 = list.FindLast((Student s) => s.NAME.Contains("1"));
    Console.WriteLine(@"ID:{0};姓名:{1};學號:{2}", result3.ID, 
    result3.NAME, result3.STUDENT_ID);
    Console.ReadKey();
    Console.WriteLine();

結果:
ID:19;姓名:學生19;學號:2019

4、使用FindIndex

public int FindIndex(Predicate<T> match)
找到學生姓名為“學生15”的序號

    int result4 = list.FindIndex((Student s) => s.NAME == "學生15");
    Console.WriteLine(@"序號:{0}", result4);
    Console.ReadKey();
    Console.WriteLine();

結果:
序號:15

如果您看了本篇博客,覺得對您有所收獲,請點擊右下角的 [推薦]

如果您想轉載本博客,請注明出處

如果您對本文有意見或者建議,歡迎留言

感謝您的閱讀,請關注我的后續博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM