首页 > 其他分享 >GetEnumerator使用

GetEnumerator使用

时间:2024-10-26 11:42:05浏览次数:5  
标签:GetEnumerator s2 Current static 使用 var previous

internal class Program
{
    static async Task Main(string[] args)
    {
        var list = new List<int>()
        {
            1, 2, 3, 4, 5, 6, 7,
        };

        var res = Pairwise<int, string>(list, (s1, s2) =>
        {
            return $"{s1}:{s2}";
        });

        foreach (var item in res)
        {
            Console.WriteLine(item);
        }
    }

    public static IEnumerable<TResult> Pairwise<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, TSource, TResult> resultSelector)
    {
        using var e = source.GetEnumerator();

        if (!e.MoveNext()) yield break;

        var previous = e.Current;
        while (e.MoveNext())
        {
            yield return resultSelector(previous, e.Current);
            previous = e.Current;
        }
    }
}

输出

标签:GetEnumerator,s2,Current,static,使用,var,previous
From: https://www.cnblogs.com/readafterme/p/18503850

相关文章

  • BigDecimal使用
    常见方法我们在使用BigDecimal时,为了防止精度丢失,推荐使用它的BigDecimal(Stringval)构造方法或者BigDecimal.valueOf(doubleval)静态方法来创建对象。《阿里巴巴Java开发手册》对这部分内容也有提到,如下图所示。加减乘除add方法用于将两个BigDecimal对象相加,subt......
  • sqlmap使用教程(包含POST型注入方式)
    前言:使用kali系统中自带的sqlmap,无需安装,非常方便,命令行输入sqlmap 可以查看sqlmap信息正文中会把所有常用的命令先列举出来,如果只是不熟悉命令格式的朋友可以节约时间只看前面的部分,也可以用目录跳转到对应的内容,如果想了解工具的使用效果后面会有注入过程的详......
  • vue的生命周期,每个生命周期怎么使用,详细解释
    Vue的生命周期是指Vue实例从创建到销毁的过程中的各个阶段。每个阶段都有特定的生命周期钩子(hook),可以在这些钩子中执行特定的操作。下面是Vue的生命周期阶段及其对应的钩子函数的详细解释:1.创建阶段beforeCreate描述:在实例初始化之后、数据观测和事件配置之前被......
  • 如何使用NTP同步时间?
    ​一、NTP通信概述很多场景中,由于业务需要,模块需要保持正确的系统时钟,才能正常工作。但是模块上电后的初试时间戳是946713600(即2000/01/01,16:00:00),所以同步时钟成为了开发者要解决的重要问题。对于Cat.1模块,移动/电信卡,通常会下发基站时间,那么sntp就不是必要的,而联通卡通常......
  • C++中vector的使用方法
    1包含头文件和命名空间首先,在使用vector之前,需要包含<vector>头文件。在C++中,如果使用标准命名空间,还需要加上usingnamespacestd;语句(不过这种全局使用命名空间的方式在大型项目中可能会引起命名冲突,也可以只使用std::vector来明确指定是标准库中的vector类型)。示例:#......
  • 推荐15个 Vue 常用自定义指令,含实现原理与使用方式
    前言Vue.js是一个流行的前端框架,它的核心理念是通过指令(Directives)来扩展HTML的能力。尽管Vue.js已经内置了一些非常实用的指令(比如v-if,v-show,v-for等),但有时候我们还是需要创建自定义指令来满足特定的需求。今天我们就来聊聊Vue常用的自定义指令,它们能让你的......
  • 短视频类app源码,线程创建并非使用线程池一种
    短视频类app源码,线程创建并非使用线程池一种,除此之外,以下线程池创建方式也不容错过。有三种使用线程的方法:实现Runnable接口;实现Callable接口;继承Thread类。实现Runnable和Callable接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需......
  • 【Python中的匿名函数】如何高效使用lambda表达式!
    Python中的匿名函数:如何高效使用lambda表达式Python中的匿名函数,也被称为lambda表达式,是一种简洁的函数定义方式。它们在某些场景中能够显著简化代码结构,提升可读性和代码执行效率。本文将详细讨论lambda表达式的使用方法、优缺点、适用场景以及使用技巧,帮助你更高效地应用......
  • DISM 支持使用无人值守文件(通常为 .xml 格式)来执行各种操作,特别是在部署和维护 Window
    DISM支持使用无人值守文件(通常为.xml格式)来执行各种操作,特别是在部署和维护Windows映像时。以下是一些可以与无人值守文件一起使用的DISM参数:1. /Apply-Unattend这个参数用于应用无人值守文件到Windows映像。可以在以下命令中使用:bashCopyCodeDism/Image:"C:\Path......
  • 将软件集成到 Windows 映像中并进行静默安装,可以使用 DISM 和适当的安装程序命令。下
    将软件集成到Windows映像中并进行静默安装,可以使用DISM和适当的安装程序命令。下面是具体的步骤和示例命令。1.准备工作确保你有一个已挂载的Windows映像。确保你有软件的安装程序,并且支持静默安装。2.挂载映像首先,挂载你的WIM文件(如果还没有挂载的话):bashCopyC......