For Each row As DataRow In Parse_CSV("""Name1"", ""A test, which ""fails"" all the time""" & Environment.NewLine() & """Name2"", ""A test, which ""fails"" all the time""" & Environment.NewLine() & """Name3"", ""A test, which ""fails"" all the time""").Rows
Console.WriteLine(String.Join(" | ", row.ItemArray))
Private Function Parse_CSV(ByVal csv As String) As DataTable
Dim dt As DataTable = New DataTable("CSV")
dt.Columns.AddRange({New DataColumn("Column1"), New DataColumn("Column2")})
Dim separator As Integer = -1
For Each line As String In csv.Split({Environment.NewLine}, StringSplitOptions.None)
separator = line.IndexOf(","c)
Throw New MissingFieldException("The current line is missing a separator: " & line)
ElseIf separator = line.Length - 1 Then
Throw New MissingFieldException("The separator cannot appear at the end of the line, this is occuring at: " & line)
dt.Rows.Add({line.Substring(0, separator), line.Substring(separator + 2)})