Enumerable[从元数据]

    //
        // 摘要:
        //     从序列的开头返回指定数量的连续元素。
        //
        // 参数:
        //   source:
        //     要从其返回元素的序列。
        //
        //   count:
        //     要返回的元素数量。
        //
        // 类型参数:
        //   TSource:
        //     source 中的元素的类型。
        //
        // 返回结果:
        //     一个 System.Collections.Generic.IEnumerable<T>,包含输入序列开头的指定数量的元素。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     source 为 null。
        public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source, int count);

例子:list.take(4).ToList();//从序列的开头返回指定数量的连续元素(0,1,2,3)

    //
        // 摘要:
        //     通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。
        //
        // 参数:
        //   source:
        //     要从中移除重复元素的序列。
        //
        // 类型参数:
        //   TSource:
        //     source 中的元素的类型。
        //
        // 返回结果:
        //     一个 System.Collections.Generic.IEnumerable<T>,包含源序列中的非重复元素。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     source 为 null。
        public static IEnumerable<TSource> Distinct<TSource>(this IEnumerable<TSource> source);

例子:list.Distinct().ToList();//通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。

    //
        // 摘要:
        //     将序列中的每个元素投影到新表中。
        //
        // 参数:
        //   source:
        //     一个值序列,要对该序列调用转换函数。
        //
        //   selector:
        //     应用于每个元素的转换函数。
        //
        // 类型参数:
        //   TSource:
        //     source 中的元素的类型。
        //
        //   TResult:
        //     selector 返回的值的类型。
        //
        // 返回结果:
        //     一个 System.Collections.Generic.IEnumerable<T>,其元素为对 source 的每个元素调用转换函数的结果。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     source 或 selector 为 null。
        public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);

        Select函数的参数(Func<TSource, TResult> selector)是一个委托类型,列表中的每一个元素都调用这个委托函数,调用的过程是在Select函数内部实现的,我们看不到,获得一个对应的结果,放到一个新的列表中,这个新的列表,也是在Select函数内部实现的,我们也看不到。当每一个元素都调用完Func<TSource, TResult> selector的时候,也就是Select函数即将结束的时候,把这个新的列表返回。我们需要建一个列表来接收他。蓝色的字体this+一堆东西,意思是列表对象可以调用这个函数。

举例:如下图,委托函数是new DeviceProxyCfg(){...} ,创建一个对象,并用c#特有的方式对这个对象进行赋初值(new+类名{在大括号里赋初值}), 这里不明白的地方有两点,第一,构造函数没有参数,但是lamdab表达式是有参数的。第二,如何把这个对象DeviceProxyCfg添加到列表中的

http://blog.csdn.net/yan_hyz/article/details/7794063  Select和Where方法联系

 

posted on 2016-04-27 09:53  Mr.He多多指教  阅读(2065)  评论(0编辑  收藏  举报