Ejemplo n.º 1
0
        public IData Reduce(EReduceZeroEntries onZero, object[] v)
        {
            if (v == null)
            {
                switch (onZero)
                {
                case EReduceZeroEntries.Break: return(new DataBreak(this));

                case EReduceZeroEntries.Empty: return(new DataEmpty(this));

                case EReduceZeroEntries.Null:
                default: return(null);
                }
            }

            switch (v.Length)
            {
            case 0:
            {
                switch (onZero)
                {
                case EReduceZeroEntries.Break: return(new DataBreak(this));

                case EReduceZeroEntries.Empty: return(new DataEmpty(this));

                case EReduceZeroEntries.Null:
                default: return(null);
                }
            }

            case 1: return(new DataObject(this, v[0]));

            default: return(new DataArray(this, v));
            }
        }
Ejemplo n.º 2
0
        public IData Reduce(EReduceZeroEntries onZero, IList <object> v)
        {
            if (v == null)
            {
                switch (onZero)
                {
                case EReduceZeroEntries.Break: return(new DataBreak(_Source));

                case EReduceZeroEntries.Empty: return(new DataEmpty(_Source));

                case EReduceZeroEntries.Null:
                default: return(null);
                }
            }

            switch (v.Count)
            {
            case 0:
            {
                switch (onZero)
                {
                case EReduceZeroEntries.Break: return(new DataBreak(_Source));

                case EReduceZeroEntries.Empty: return(new DataEmpty(_Source));

                case EReduceZeroEntries.Null:
                default: return(null);
                }
            }

            case 1: return(new DataObject(_Source, v[0]));

            default: return(new DataArray(_Source, v));
            }
        }