public override void Put(StreamBase f)
        {
            base.Put(f);
            f.WriteByte((byte)(distinct ? 1 : 0));
            f.PutInt(display.Length);
            var ab = display.First();

            for (var b = cpos.First(); ab != null && b != null; b = b.Next(), ab = ab.Next())
            {
                f.PutString(ab.Value.Item2);
                b.Value.Item2.Put(f);
            }
            qry.Put(f);
            f.PutInt(order.Length.HasValue?order.Length.Value:0);
            for (var b = order.First(); b != null; b = b.Next())
            {
                b.Value.Put(f);
            }
        }
 public override void Put(StreamBase f)
 {
     base.Put(f);
     col.Put(f);
     f.WriteByte((byte)(desc ? 1 : 0));
 }