private ZipDataView(IHost host, IDataView[] sources)
        {
            Contracts.AssertValue(host);
            _host = host;

            _host.Assert(Utils.Size(sources) > 1);
            _sources    = sources;
            _zipBinding = new ZipBinding(_sources.Select(x => x.Schema).ToArray());
        }
            public Cursor(ZipDataView parent, DataViewRowCursor[] srcCursors, Func <int, bool> predicate)
                : base(parent._host)
            {
                Ch.AssertNonEmpty(srcCursors);
                Ch.AssertValue(predicate);

                _cursors        = srcCursors;
                _zipBinding     = parent._zipBinding;
                _isColumnActive = Utils.BuildArray(_zipBinding.ColumnCount, predicate);
            }