Beispiel #1
0
 /// <summary>
 /// 分别遍历一个迭代器的第一个元素和其他元素
 /// </summary>
 /// <typeparam name="Obj">迭代器的元素类型</typeparam>
 /// <param name="list">待遍历的迭代器</param>
 /// <param name="first">用来遍历第一个元素的委托,
 /// 它的第一个参数是待遍历的元素,第二个参数就是<paramref name="other"/>的柯里化形式,参数传入第一个元素</param>
 /// <param name="other">用来遍历其他元素的委托</param>
 public static void ForEachSplit <Obj>(this IEnumerable <Obj> list, Action <Obj, Action> first, Action <Obj> other)
 {
     var(First, Other, HasElements) = list.First(false);
     if (HasElements)
     {
         first(First, () => other(First));
         Other.ForEach(other);
     }
 }