I have a CSV file with the following columns: `id`, `fname`, `telephone`, `lname`, `address`.

I have a `Person` class with `id`, `fname` and `lname` data members. I want to map only these columns to `Person` object from a CSV file and discard `telephone` and `address` columns. How can I do this? The solution must scale as more columns are added in future. And should work regardless of column position. 

In an ideal solution user will only specify columns to read and it should just work.