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方法联系
|
请发表评论