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方法聯系