Beispiel #1
0
        private static Option <T[]> TakeExactly <T>(IEnumerable <T> source, int count, Option.ErrorHelper returnNoneOrThrow)
        {
            var xs = source.Take(count + 1).ToArray();

            if (xs.Length != count)
            {
                return(returnNoneOrThrow("Expected " + count + " items, but got " + (xs.Length > count ? " more." : xs.Length + " items.")));
            }
            return(Option.GetSome(xs));
        }
Beispiel #2
0
 private static Option <Tuple <T, T, T, T, T> > TakeExactly5_ <T>(this IEnumerable <T> source, Option.ErrorHelper returnNoneOrThrow)
 {
     return(TakeExactly(source, 5, returnNoneOrThrow).Transform(xs => Tuple.Create(xs[0], xs[1], xs[2], xs[3], xs[4])));
 }