Ejemplo n.º 1
0
        public static T first <T>(IEnumerable <T> ts)
        {
            Bomb.ifNull(ts, () => "null ts!");
            var e = ts.GetEnumerator();

            Bomb.unless(e.MoveNext(), () => "can't get first of empty enumerable");
            return(e.Current);
        }
Ejemplo n.º 2
0
        public static T nth <T>(IEnumerable <T> ts, int n)
        {
            Bomb.ifNull(ts, () => "null ts!");
            var e = ts.GetEnumerator();

            zeroTo(n, i => Bomb.unless(e.MoveNext(), () => "can't get " + (i + 1) + "th of empty enumerable"));
            return(e.Current);
        }
Ejemplo n.º 3
0
        public static IEnumerable <T> rest <T>(IEnumerable <T> ts)
        {
            Bomb.ifNull(ts, () => "null ts!");
            var e = ts.GetEnumerator();

            Bomb.unless(e.MoveNext(), () => "can't get rest of empty enumerable");
            while (e.MoveNext())
            {
                yield return(e.Current);
            }
        }
Ejemplo n.º 4
0
 static void requireNonEmpty <T>(IList <T> ts)
 {
     Bomb.when(Bomb.ifNull(ts, () => "null ts!").Count < 1, () => "empty list passed to requireNonEmpty");
 }