1、WindowsLiveWriter.CNBlogs.CodeHighlighter
/// <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;
}
}
2、Windows Live Writer Source Code plugin for SyntaxHighlighter
/// <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);
}
}