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)); } }
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)); } }