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

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

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