一、WindowsLiveWriter.CNBlogs.CodeHighlighterhtml
/// <summary> /// 遍歷元素
/// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> /// <param name="action"></param> /// <returns></returns> public static IEnumerable<T> ForEach<T>(this IEnumerable<T> source, Action<T> action) { if (source == null) { throw new ArgumentNullException("source"); } if (action == null) { throw new ArgumentNullException("action"); } foreach (var item in source) { action(item); yield return item; } }
二、Windows Live Writer Source Code plugin for SyntaxHighlighterthis
/// <summary> /// 將集合分段 /// 指定每段的長度range /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> /// <param name="rangelength"></param> /// <returns></returns> public static IEnumerable<IEnumerable<T>> Subparagraph<T>(this IEnumerable<T> source, int rangelength) { if (rangelength < 1) { throw new Exception("rangelength參數應大於等於1"); } if (source == null) { throw new ArgumentNullException("source"); } var temp = source; while (!temp.IsEmpty()) { yield return temp.Take(rangelength); temp = temp.Skip(rangelength); } }