Don’t reinvent the wheel. Take advantage of what’s already in .NET BCL.
- add a reference to the
Microsoft.VisualBasic
(yes, it says VisualBasic but it works in C# just as well – remember that at the end it is all just IL) - use the
Microsoft.VisualBasic.FileIO.TextFieldParser
class to parse CSV file
Here is the sample code:
using (TextFieldParser parser = new TextFieldParser(@"c:\temp\test.csv"))
{
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");
while (!parser.EndOfData)
{
//Processing row
string[] fields = parser.ReadFields();
foreach (string field in fields)
{
//TODO: Process field
}
}
}
It works great for me in my C# projects.
Here are some more links/informations: