示例#1
0
文件: Utils.cs 项目: manofstick/L2O2
        internal static Consumable <U> PushTransform <T, U>(IEnumerable <T> e, ITransmutation <T, U> transform)
        {
            switch (e)
            {
            case Consumable <T> consumable:
                return(consumable.AddTail(transform));

            default:
                return(CreateConsumable(e, transform));
            }
        }
示例#2
0
文件: Utils.cs 项目: manofstick/L2O2
        internal static Consumable <U> CreateConsumable <T, U>(IEnumerable <T> e, ITransmutation <T, U> transform)
        {
            switch (e)
            {
            case T[] array:
                return(new ConsumableArray <T, T, U>(array, IdentityTransform <T> .Instance, transform));

            case List <T> list:
                return(new ConsumableList <T, T, U>(list, IdentityTransform <T> .Instance, transform));

            default:
                return(new ConsumableEnumerable <T, T, U>(e, IdentityTransform <T> .Instance, transform));
            }
        }
示例#3
0
 public ConsumableArrayEnumerator(T[] array, ITransmutation <T, TResult> factory)
 {
     this.array = array;
     activity   = factory.Compose(this);
 }
示例#4
0
 public ConsumableArray(T[] array, ITransmutation <T, U> first, ITransmutation <U, V> second) : base(first, second) =>
     this.array = array;
示例#5
0
 public ConsumableList(List <T> list, ITransmutation <T, U> first, ITransmutation <U, V> second) : base(first, second) =>
     this.list = list;
示例#6
0
 public abstract Consumable <U> AddTail <U>(ITransmutation <T, U> transform);
 public ConsumableEnumerableEnumerator(IEnumerable <T> enumerable, ITransmutation <T, TResult> factory)
 {
     this.enumerable = enumerable;
     activity        = factory.Compose(this);;
 }
示例#8
0
 public abstract Consumable <V> ReplaceTail <U, V>(ITransmutation <U, V> selectImpl);
示例#9
0
 public ConsumableListEnumerator(List <T> list, ITransmutation <T, TResult> factory)
 {
     this.list = list;
     activity  = factory.Compose(this);
 }
示例#10
0
 public ConsumableSelectMany(Consumable <IEnumerable <T> > enumerable, ITransmutation <T, U> first, ITransmutation <U, V> second) : base(first, second) =>
     this.consumableEnumerable = enumerable;
示例#11
0
 public static ITransmutation <T, V> Combine <T, U, V>(ITransmutation <T, U> first, ITransmutation <U, V> second) =>
 new CompositionTransform <T, U, V>(first, second);
 protected ConsumableWithComposition(ITransmutation <T, U> first, ITransmutation <U, V> second) =>
 (this.first, this.second) = (first, second);
示例#13
0
 public ConsumableEnumerable(IEnumerable <T> enumerable, ITransmutation <T, U> first, ITransmutation <U, V> second) : base(first, second) =>
     this.enumerable = enumerable;