Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

There are several ways to discard a missing value in Filehelpers, depending on the context and requirements of the data:

  1. Ignore missing values during import: When importing data using Filehelpers, you can use the [FieldIgnored] attribute to skip fields with missing or empty values. For example:

    [DelimitedRecord(",")]
    public class MyRecord
    {
       public int Id { get; set; }
    
       [FieldIgnored]
       public string Description { get; set; }
    
       public double Value { get; set; }
    }
    

    This code defines a class with three fields (Id, Description, and Value) and marks the Description field as ignored. If the input file contains empty values for this field, they will be skipped during import.

  2. Replace missing values with default values: If you want to replace missing values with some default value during import, you can use the [FieldNullValue] attribute. For example:

    [DelimitedRecord(",")]
    public class MyRecord
    {
       public int Id { get; set; }
    
       [FieldNullValue("")]
       public string Description { get; set; }
    
       [FieldNullValue("0")]
       public double Value { get; set; }
    }
    

    This code defines a class with three fields (Id, Description, and Value) and sets default values for missing values. If the input file contains empty values for Description, they will be replaced with an empty string. If it contains missing values for Value, they will be replaced with zero.

  3. Filter out missing values after import: If you want to filter out missing values after import, you can use LINQ queries to remove or exclude records with empty or null values. For example:

    var records = FileHelperEngine<MyRecord>.ReadFile("data.csv");
    var filteredRecords = records.Where(r => !string.IsNullOrEmpty(r.Description)
                                            && r.Value != 0);
    

    This code reads a CSV file into a list of MyRecord objects and then filters out any records with missing values for Description or Value. The resulting filteredRecords list will contain only records with non-empty Description and non-zero Value.