首页 > 其他分享 >先Where 再First ,还是直接First.

先Where 再First ,还是直接First.

时间:2023-04-23 16:14:23浏览次数:32  
标签:Run items filter Size 直接 Where First

    private static void FirstTest()
    {

        IEnumerable<Item> items = new List<Item>(Enumerable.Range(0, 1000).Select(a => new Item(a)));

        // sorting randomly
        items = items.OrderBy(x => new Guid()).ToArray();

        int n = 100;

        Func<Item, bool> filter = x => x.Size == n;

        Run("First", () => items.First(filter));
        Run("Where First", () => items.Where(filter).First());

        filter = x => x.Size < n;

        Run("First", () => items.First(filter));
        Run("Where First", () => items.Where(filter).First());

        filter = x => x.Size > n;

        Run("First", () => items.First(filter));
        Run("Where First", () => items.Where(filter).First());
    }

    public class Item
    {
        public String Name { get; set; }
        public int Size { get; set; }

        public Item(int n)
        {
            Size = n;
            Name = "a" + Size;
        }
    }


    public static void Run(String title, Func<object> action)
    {

        Stopwatch watch = Stopwatch.StartNew();

        for (int i = 0; i < 40000; i++)
        {
            action();
        }

        watch.Stop();


        Console.WriteLine("{0} milliseconds for {1}", watch.ElapsedMilliseconds, title);

    }

输出结果:

 

标签:Run,items,filter,Size,直接,Where,First
From: https://www.cnblogs.com/huangkai00000/p/17346817.html

相关文章

  • 在命令行中直接使用密码 ssh 登录
    在命令行中直接使用密码ssh登录问题需要在shell脚本中ssh登录远程服务器,上传下载文件,但由于ssh直接使用TTY访问,需要确保密码是用户键盘输入的,每次都需要输入密码,又没有添加免密登录,所以需要在脚本中直接使用密码执行操作。解决方案使用sshpass库,sshpass在专门的......
  • nginx的location匹配顺序是怎么样的?rewrite转发到uptream和直接在proxy_pass转发到ups
    Nginxlocation匹配的顺序在Nginx配置文件中,location指令用于配置请求匹配到的URL路径对应的处理规则。location指令匹配URL路径的方式是先精确匹配,然后正则匹配,最后使用URI重写实现后备匹配。匹配顺序如下:先精确匹配location指令中以=开头的模式;然后正则匹......
  • 2、自动化的客户端证书颁发脚本(内有注释,不可直接复制)
    #!/bin/bashOPENVPN_SERVER=openvpn.mfc001.com(域名或公网地址)PASS=123456remove_cert(){rm-rf/etc/openvpn/client/${NAME}find/etc/openvpn/-name"$NAME.*"-delete}create_cert(){cd/etc/openvpn/easy-rsa./easyrsagen-re......
  • left join 和 where 区别
    RThttps://leetcode.cn/problems/replace-employee-id-with-the-unique-identifier/solution/selectb.unique_id,a.namefromEmployeesaleftjoinEmployeeUNIbona.id=b.id;selectb.unique_id,a.namefromEmployeesa,EmployeeUNIbwherea.id=b.id;whe......
  • 直接写和放在函数中不同的R语言用法
    索引数据框中的某一列df$A可以索引数据框df中列名为A的列的所有值。那么假如列名是一个R对象怎么做?df<-data.frame(A=1:5,B=(1:5)*2)df$A##[1]12345needed_column='A'#df$needed_column?Wrong#注意是双方括号df[[needed_column]]##[1]12345ggplo......
  • 不输入密码ssh直接登录阿里云Linux主机
    评:不输入密码ssh直接登录阿里云Linux主机服务器环境:阿里云云服务器,Linux版本-CentOS客户端环境:MacOSXTerminal在Terminal中用ssh命令登录服务器每次都要输入密码,虽然可以复制/粘贴密码,但登录后一段时间不操作,服务器会自动断开连接,连接时又要复制/粘贴密码,还是有些不方......
  • react+ts+hook封装一个table分页组件(建议收藏,直接使用)
    前言大家好我是歌谣我是一名坚持写博客四年的博主最好的种树是十年前其次是现在,今天继续对antdesigntable的分页封装进行讲解封装准备(多看官网)jsx风格的api<><Table<User>columns={columns}dataSource={data}/>/*使用JSX风格的API*/<Table<User>data......
  • Clouds remind me that magical things in life can come out of nowhere
    Cloudscanalsotransportmeawayfromthedullerpartsoflife,awayfromboringsituationsandawayfromdaytodaystressesandworries.Theygetmeoutofmyheadandintoadreamscape,amagicallookinglandscapethatfloatsabovemewhereIcanimag......
  • 如果是不创建新浏览器窗口,直接在已打开的浏览器,则代码需要修改为:
    如果是不创建新浏览器窗口,直接在已打开的浏览器,则代码需要修改为:caps=DesiredCapabilities.CHROMEcaps['loggingPrefs']={'performance':'ALL'}options=webdriver.ChromeOptions()options.add_experimental_option('w3c',False)options.add_experiment......
  • 将本地MarkDown文件直接上传到博客园网站
    本地MarkDown直接上传到博客园网站1.采用dotnet-sdk方式:1.需要好用的MarkDown笔记软件:(Typora)https://www.typora.io/2.从Typora到博客园的装欢需要以下步骤:(1)下载dotnet-sdk并安装:.NET教程|HelloWorld5分钟(microsoft.com)(2)通过dotnet--info确认对应的版本:dotnet......