• list中的Find方法使用


    对于用list<Type>这种泛型容器使用Find方法中需要传递一个参数是这样形式的Predicate<T>,T就是list存储的类型,而这里Predicate<T>是一个委托,构造是这样的public delegate bool Prdicate<T>(T obj)。   

    因此使用的时候有两种方法,一种是在外面实现这个委托相应的函数,微软的官方例子
    using System;
    using System.Collections.Generic;

    public class Example
    {
        public static void Main()
        {
            List<string> dinosaurs = new List<string>();

            dinosaurs.Add("Compsognathus");
            dinosaurs.Add("Amargasaurus");
            dinosaurs.Add("Oviraptor");
            dinosaurs.Add("Velociraptor");
            dinosaurs.Add("Deinonychus");
            dinosaurs.Add("Dilophosaurus");
            dinosaurs.Add("Gallimimus");
            dinosaurs.Add("Triceratops");

            Console.WriteLine();
            foreach(string dinosaur in dinosaurs)
            {
                Console.WriteLine(dinosaur);
            }

            Console.WriteLine("\nTrueForAll(EndsWithSaurus): {0}",
                dinosaurs.TrueForAll(EndsWithSaurus));

            Console.WriteLine("\nFind(EndsWithSaurus): {0}",
                dinosaurs.Find(EndsWithSaurus));

            Console.WriteLine("\nFindLast(EndsWithSaurus): {0}",
                dinosaurs.FindLast(EndsWithSaurus));

            Console.WriteLine("\nFindAll(EndsWithSaurus):");
            List<string> sublist = dinosaurs.FindAll(EndsWithSaurus);

            foreach(string dinosaur in sublist)
            {
                Console.WriteLine(dinosaur);
            }

            Console.WriteLine(
                "\n{0} elements removed by RemoveAll(EndsWithSaurus).",
                dinosaurs.RemoveAll(EndsWithSaurus));

            Console.WriteLine("\nList now contains:");
            foreach(string dinosaur in dinosaurs)
            {
                Console.WriteLine(dinosaur);
            }

            Console.WriteLine("\nExists(EndsWithSaurus): {0}",
                dinosaurs.Exists(EndsWithSaurus));
        }

        // Search predicate returns true if a string ends in "saurus".
        private static bool EndsWithSaurus(String s)
        {
            if ((s.Length > 5) &&
                (s.Substring(s.Length - 6).ToLower() == "saurus"))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }

    /* This code example produces the following output:

    Compsognathus
    Amargasaurus
    Oviraptor
    Velociraptor
    Deinonychus
    Dilophosaurus
    Gallimimus
    Triceratops

    TrueForAll(EndsWithSaurus): False

    Find(EndsWithSaurus): Amargasaurus

    FindLast(EndsWithSaurus): Dilophosaurus

    FindAll(EndsWithSaurus):
    Amargasaurus
    Dilophosaurus

    2 elements removed by RemoveAll(EndsWithSaurus).

    List now contains:
    Compsognathus
    Oviraptor
    Velociraptor
    Deinonychus
    Gallimimus
    Triceratops

    Exists(EndsWithSaurus): False
    */
  • 相关阅读:
    UI自动化测试入门一:Python3+Selenium环境搭建
    Linux下限制进程的CPU利用率
    Linux下模拟CPU占用100%
    Java接口自动化——OkHttp框架
    Java接口自动化——Before/After注解、Parameters注解和DataProvider注解
    Java接口自动化——TestNG快速开始
    《重构 改善既有代码的设计》读书笔记-坏代码的味道
    linux-脚本问题汇总
    RocketMq源码学习-消息存储
    linux-文本处理-grep
  • 原文地址:https://www.cnblogs.com/yukun/p/533094.html
Copyright © 2020-2023  润新知