title: How to configure CsvHelper to skip MissingFieldFound rows
body: <pre><code>public interface ICsvProductReaderConfigurationFactory
  {
      Configuration Build();
  }
  
  public class CsvProductReaderConfigurationFactory : ICsvProductReaderConfigurationFactory
  {
      private readonly ClassMap&lt;ProductDto&gt; classMap;
  
      public CsvProductReaderConfigurationFactory(IProductDtoClassMapProvider classMapProvider)
      {
          classMap = classMapProvider.Get();
      }
  
      public Configuration Build()
      {
          var config = new Configuration
          {
              Delimiter = &quot;\t&quot;,
              HasHeaderRecord = true,
              IgnoreQuotes = true,
              MissingFieldFound = (rows, fieldIndex, readingContext) =&gt;
                  Log.Warn($&quot;Missing Field Found at line {readingContext.Row}\r\n&quot; +
                           $&quot;Field at index {fieldIndex} does not exist\r\n&quot; +
                           $&quot;Raw record: {readingContext.RawRecord}&quot;),
              BadDataFound = context =&gt; 
                  Log.Warn($&quot;Bad data found at row {context.Row}\r\n&quot; +
                           $&quot;Raw data: {context.RawRecord}&quot;)
          };
  
          config.RegisterClassMap(classMap);
          return config;
      }
  }
  
  
  public interface ICvsProductReader
  {
      IEnumerable&lt;ProductDto&gt; GetAll(string filePath);
  }
  
  public class CvsProductReader : ICvsProductReader
  {
      private readonly ICsvProductReaderConfigurationFactory csvProductReaderConfigurationFactory;
  
      public CvsProductReader(ICsvProductReaderConfigurationFactory csvProductReaderConfigurationFactory)
      {
          this.csvProductReaderConfigurationFactory = csvProductReaderConfigurationFactory;
      }
  
      public IEnumerable&lt;ProductDto&gt; GetAll(string filePath)
      {
          var csvReaderConfiguration = csvProductReaderConfigurationFactory.Build();
  
          using (var streamReader = new StreamReader(filePath))
          using (var csvReader = new CsvReader(streamReader, csvReaderConfiguration))
          {
              return csvReader.GetRecords&lt;ProductDto&gt;().ToArray();
          }
      }
  }
  </code></pre>
  <p><code>MissingFieldFound</code> property is called when a missing field is found, but can not affect result.</p>
  <p>I was wondering if it's possible to configure CsvHelper to skip rows with missing fields.</p>