Ejemplo n.º 1
0
        private Pile(IEnumerable <T> items, bool skipLogicInit)
        {
            if (items is null)
            {
                ThrowHelper.ThrowArgNull(nameof(items));
            }

            if (!skipLogicInit)
            {
                _logic = new PileLogic <T>();
                _logic.AddSequence(items);
                Adder = _logic.AddHead;
            }
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        protected WrappingPile(IEnumerable <T> items)
            : base(skipLogicInit: true)
        {
            if (items is null)
            {
                ThrowHelper.ThrowArgNull(nameof(items));
            }

            //_unwrapper = unwrapper ?? _defunwrapper;
            Adder = i => _logic.AddHead(Wrap(i));

            _logic.AddSequence(items
                               .Where(i => i != null)
                               .Distinct(ReferenceComparer <T> .Instance)
                               .Select(Wrap));
        }