public SeparatedValueSchemaSelectorWhenBuilder(SeparatedValueSchemaSelector selector, Func <string[], bool> predicate)
 {
     this.selector  = selector;
     this.predicate = predicate;
 }
 /// <summary>
 /// Initializes a new SeparatedValueReader with the given schema.
 /// </summary>
 /// <param name="reader">A reader over the separated value document.</param>
 /// <param name="schemaSelector">The schema selector configured to determine the schema dynamically.</param>
 /// <param name="options">The options controlling how the separated value document is read.</param>
 /// <exception cref="ArgumentNullException">The reader is null.</exception>
 /// <exception cref="ArgumentNullException">The schema selector is null.</exception>
 public SeparatedValueReader(TextReader reader, SeparatedValueSchemaSelector schemaSelector, SeparatedValueOptions options = null)
     : this(reader, null, options, false)
 {
     this.schemaSelector = schemaSelector ?? throw new ArgumentNullException(nameof(schemaSelector));
 }