More comfort reading values from lines in CSV-files
Today I had to read values from multiple CVS-files. I wanted to build a testable and reusable solution instead of the ugly sequential spaghetti that easily happens.
So here is a sample of a line:
var lineReadFromCsv =
"42;Daniel;Fisher;1980-03-25;{79704C0D-1A4F-4DDD-80F6-CA79E81BF7CD}";
To increase the readability I created enumerations that point to the index of the position of the values in each line that I wanted to read:
public enum DataFormatField
{
Id = 0,
GivenName = 1,
Surname = 2,
DateOfBirth = 3,
UniqueId = 4,
}
I created a class called ParserParameter that contains enums that
public class ParserParameter
{
prop Enum FirstName { get; set; }
//...
}
Last but not least an extension class the provides a generic method TryGetValueOrDefault
int id;
if (fields.TryGetValueOrDefault(
DataFormatField.Id,
out id))
{
Console.WriteLine(id);
}