public static object tee(object iterable, int n) { if (n < 0) { throw PythonOps.ValueError("n cannot be negative"); } object[] res = new object[n]; if (!(iterable is TeeIterator)) { IEnumerator iter = PythonOps.GetEnumerator(iterable); List dataList = new List(); for (int i = 0; i < n; i++) { res[i] = new TeeIterator(iter, dataList); } } else if (n != 0) { // if you pass in a tee you get back the original tee // and other iterators that share the same data. TeeIterator ti = iterable as TeeIterator; res[0] = ti; for (int i = 1; i < n; i++) { res[1] = new TeeIterator(ti._iter, ti._data); } } return(PythonTuple.MakeTuple(res)); }
public static object Tee(object iterable, int n) { if (n < 0) { throw Ops.SystemError("bad argument to internal function"); } object[] res = new object[n]; if (!(iterable is TeeIterator)) { IEnumerator iter = Ops.GetEnumerator(iterable); List dataList = new List(); for (int i = 0; i < n; i++) { res[i] = new TeeIterator(iter, dataList); } } else if (n != 0) { // if you pass in a tee you get back the original tee // and other iterators that share the same data. TeeIterator ti = iterable as TeeIterator; res[0] = ti; for (int i = 1; i < n; i++) { res[1] = new TeeIterator(ti.iter, ti.data); } } return(new Tuple(false, res)); }
public static object Tee(object iterable, int n) { if (n < 0) throw Ops.SystemError("bad argument to internal function"); object[] res = new object[n]; if (!(iterable is TeeIterator)) { IEnumerator iter = Ops.GetEnumerator(iterable); List dataList = new List(); for (int i = 0; i < n; i++) { res[i] = new TeeIterator(iter, dataList); } } else if (n != 0) { // if you pass in a tee you get back the original tee // and other iterators that share the same data. TeeIterator ti = iterable as TeeIterator; res[0] = ti; for (int i = 1; i < n; i++) { res[1] = new TeeIterator(ti.iter, ti.data); } } return new Tuple(false, res); }
public TeeIterator(object iterable) { TeeIterator other = iterable as TeeIterator; if (other != null) { this._iter = other._iter; this._data = other._data; } else { this._iter = PythonOps.GetEnumerator(iterable); _data = new List(); } }
public static object tee(object iterable, int n) { if (n < 0) throw PythonOps.ValueError("n cannot be negative"); object[] res = new object[n]; if (!(iterable is TeeIterator)) { IEnumerator iter = PythonOps.GetEnumerator(iterable); List dataList = new List(); for (int i = 0; i < n; i++) { res[i] = new TeeIterator(iter, dataList); } } else if (n != 0) { // if you pass in a tee you get back the original tee // and other iterators that share the same data. TeeIterator ti = iterable as TeeIterator; res[0] = ti; for (int i = 1; i < n; i++) { res[1] = new TeeIterator(ti._iter, ti._data); } } return PythonTuple.MakeTuple(res); }