C#-从分隔字符串写入数据表

C#-从分隔字符串写入数据表,c#,csv,datatable,delimited,C#,Csv,Datatable,Delimited,我有一个类似这样的字符串: "X","Y","Z" "X2","Y2","Z2" "X" "Y" "Z" "X2" "Y2" "Z2" i、 e,由新行分隔的多行,新行包含多个由逗号分隔的不同字符串值 如何创建一个函数将这些值输入数据表,如下所示: "X","Y","Z" "X2","Y2","Z2" "X" "Y" "Z" "X2" "Y2" "Z2" 对于我的字符串中任意数量的行和列 以下是我目前掌握的情况: public static DataTable writeToDT(str

我有一个类似这样的字符串:

"X","Y","Z"
"X2","Y2","Z2"
"X" "Y" "Z"
"X2" "Y2" "Z2"
i、 e,由新行分隔的多行,新行包含多个由逗号分隔的不同字符串值

如何创建一个函数将这些值输入数据表,如下所示:

"X","Y","Z"
"X2","Y2","Z2"
"X" "Y" "Z"
"X2" "Y2" "Z2"
对于我的字符串中任意数量的行和列

以下是我目前掌握的情况:

public static DataTable writeToDT(string data) //Write to datatable from string
    {
        DataTable dataTable = new DataTable();
        foreach (string header in csvHeader)
        {
            dataTable.Columns.Add(header);
        }
        using (StringReader reader = new StringReader(data))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                DataRow dataRow = dataTable.NewRow();
            }
        }
        return dataTable;
    }
其中,
csvheader
是一个数组,该数组已经填充了我的数据中的标题。
我相信这会创建一个具有正确行数和列数的空数据表,但我不确定如何用我拥有的字符串数据填充它


提前谢谢。

像这样的东西应该行得通。解析CSV是一个已解决的问题,
中的
TextFieldParser
类使用Microsoft.VisualBasic.FileIO名称空间(添加对Microsoft.VisualBasic的引用)可以为您执行此操作

public static DataTable WriteToDataTable(string data)
{
    DataTable dataTable = new DataTable();
    foreach (var header in csvHeader)
        dataTable.Columns.Add(header);

    using (var reader = new StringReader(data))
    {
        TextFieldParser csvParser = new TextFieldParser(reader) { HasFieldsEnclosedInQuotes = true, Delimiters = new string[] { "," } };

        while (!csvParser.EndOfData)
        {
            var dataTableRow = dataTable.NewRow();
            dataTableRow.ItemArray = csvParser.ReadFields();
            dataTable.Rows.Add(dataTableRow);
        }
    }
    return dataTable;
}

太好了,谢谢!如果其他人有此问题,请注意,我必须在项目>添加引用>程序集>框架下启用Microsoft.VisualBasic.FileIO。