C# List类常用操作 之 查找

csharp 复制代码
  
//  
//  
//  作者:鸟哥
//  
//  email:xiaoniao2003@gmail.com
//
//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization.Formatters;

class Program
{
    class Student
    {
        internal string Name;
        internal int Age;
        internal Student(string n, int a)
        {
            Name = n;
            Age = a;
        }
        
        public override string ToString()
        {
            return "name:"+Name+",age"+Age;
        }
    }
    static void Main()
    {
        List<Student> students = new List<Student>{
            new Student("aa",12),
            new Student("bb",14),
            new Student("ff",16),
            new Student("cc",12),
            new Student("ee",15),
        };
        //是否students中的所有对象的Age都大于10
        bool b=students.All(stu => stu.Age >10);
        Console.WriteLine("All:"+b);

        //是否students中有对象的Age都大于13
        b = students.Any(stu => stu.Age > 13);
        Console.WriteLine("Any:"+b);

        //列表中是否包含某个对象
        b=students.Contains(new Student("bb", 14));
        Console.WriteLine("Contains:"+b);
        b = students.Contains(students[1]);
        Console.WriteLine("Contains:" + b);

        //列表中是否存在Name 是 bb的对象
        b = students.Exists(stu => stu.Name == "bb");
        Console.WriteLine("Exists:" + b);

        //搜索Age为12的所有对象的第一个对象
        Student s=students.Find(stu => stu.Age == 12);
        Console.WriteLine("Find:" + s);

        //搜索Age为12的所有对象的最后一个对象
        s = students.FindLast(stu => stu.Age == 12);
        Console.WriteLine("FindLast:" + s);

        //搜索所有Name为bb 或Age为14的对象,以列表形式返回
        var r=students.FindAll(stu=>stu.Name=="bb"||stu.Age == 14);
        Console.WriteLine("FindAll:" + r.Count);

        //获取Name为bb 或Age为14的所有对象的第一个对象
        int index = students.FindIndex(stu => stu.Name == "bb" || stu.Age == 14);
        Console.WriteLine("FindIndex:" + index);

        index=students.IndexOf(students[1]);
        Console.WriteLine("IndexOf:" + index);


    }
}

运行结果:

All:True

Any:True

Contains:False

Contains:True

Exists:True

Find:name:aa,age12

FindLast:name:cc,age12

FindAll:1

FindIndex:1

IndexOf:1

相关推荐
椒颜皮皮虾྅3 小时前
让文档不止于文字:DeploySharp + PP-Structure,打通版面分析与表格重建
开发语言·学习·c#·.net·cuda
椒颜皮皮虾྅5 小时前
一套 C# 接口,解锁四类视觉任务:DeploySharp 分类、分割、关键点与旋转框实战
开发语言·分类·c#
罗迪尼亚的熔岩6 小时前
联合kuka机器人, 海康visonmaster 的手眼9点标定方法
机器人·c#·工业相机·标定
她说彩礼65万6 小时前
C# TaskCompletionSource
java·开发语言·c#
泛凡(Linyongui)1 天前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
暴走约伯1 天前
【VFX工具链源码拆解 02】告别机械劳动(上):一键统改百个子粒子颜色与批量重命名
3d·unity·c#·材质
信息安全失业大专人员1 天前
每日了解一个智能体-WorkBuddy
开发语言·ai·c#·智能体
呆呆敲代码的小Y1 天前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题
淡海水1 天前
09-01-内存-Unity资源生命周期全景
unity·c#·游戏引擎·.netcore·gc
椒颜皮皮虾྅1 天前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda