• 泛型方法


    关于泛型方法,类Enumerable内含相当多的泛型方法的使用.Enumerable类定义的注释如下:

    // 摘要:
    //     提供一组用于查询实现 System.Collections.Generic.IEnumerable<T> 的对象的 static(在 Visual
    //     Basic 中为 Shared)方法

    由此注释,我们可以看到,凡是实现了System.Collections.Generic.IEnumerable<TSource>的对象都可以使用此类中定义的方法.

    挑其中一个方法来看.

    public static IEnumerable<TResult> Select<TSource, TResult>(
        this IEnumerable<TSource> source,
        Func<TSource, TResult> selector
    )

    返回值IEnumerable<TResult>:

    返回值类型:

    • System.Collections.Generic.IEnumerable<TResult>

    返回值:

    • 返回一个序列,此序列中的元素为对source中的每个元素调用selector方法后返回的元素结果.

    类型参数<TSource, TResult>:

    TSource:

    • source中元素的类型

    TResult:

    • selector返回的值的类型

    参数:

    source:

    • System.Collections.Generic.IEnumerable<TSource>,一个值序列,要对该序列调用selector转换函数

    selector:

    • System.Func<TSource, TResult>,应用于每个元素上的转换函数.

    例子:

    protected void Page_Load(object sender, EventArgs e)
    {
        string[] strs = new string[]
        {
            "abcd",
            "abcee",
            "bcde",
            "123s"
        };
    
        //四种调用方法都可以
        //IEnumerable<string> result = strs.Select<string, string>(x => x.StartsWith("ab") ? x : string.Empty);
        //IEnumerable<string> result = strs.Select(x => x.StartsWith("ab") ? x : string.Empty);
        //IEnumerable<string> result = Enumerable.Select<string, string>(strs, x => x.StartsWith("ab") ? x : string.Empty);
        IEnumerable<string> result = Enumerable.Select(strs, x => x.StartsWith("ab") ? x : string.Empty);
        foreach (var r in result)
        {
            Response.Write(r.ToString()+"<br/>");
        }
    }

    效果:

    abcd
    abcee

  • 相关阅读:
    Java-01,计算1-10的阶乘之和
    软件工程研究生面试机试考题-2018
    nginx会话保持之sticky模块
    Dubbo原理简介、与Zookeeper整合利用
    Day41 openstack基础
    krb5-libs这个RPM包删掉了导致ssh无法连接
    day40 数据结构-算法(二)
    进程上下文频繁切换导致load average过高
    day39 算法基础
    应用性能管理工具PinPoint介绍
  • 原文地址:https://www.cnblogs.com/oneword/p/1820620.html
Copyright © 2020-2023  润新知