Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何读取具有';的csv文件';在数据内部_C#_Csv - Fatal编程技术网

C# 如何读取具有';的csv文件';在数据内部

C# 如何读取具有';的csv文件';在数据内部,c#,csv,C#,Csv,我有一些csv数据: "data1", "data2", "data2_1", "data3" 我正在使用csvHelper读取数据 当我读取数据并使用分隔符拆分它时,“我得到4条记录 "data1", "data2", "data2_1", "data3" 但我想要3张唱片,因为我有3列 "data1", "data2, data2_1", "data3" 下面是我正在尝试的代码 var config = new CsvConfiguration() { HasHeaderRe

我有一些csv数据:

"data1", "data2", "data2_1", "data3"
我正在使用
csvHelper
读取数据

当我读取数据并使用分隔符拆分它时,“我得到4条记录

"data1", 
"data2", 
"data2_1", 
"data3"
但我想要3张唱片,因为我有3列

"data1", 
"data2, data2_1", 
"data3"
下面是我正在尝试的代码

var config = new CsvConfiguration() { HasHeaderRecord = false };
var stream = File.OpenRead(FilePath);
using (var csvReader = new CsvReader(new StreamReader(stream, Encoding.UTF8), config))
    {
        while (csvReader.Read()) {
        var parser = csvReader.Parser;
        var rowRecors = parser.RawRecord;
        var splitedData = rowRecors.Split(',');
    }

不要手动拆分,而是使用lib函数

    // By header name
var field = csv["HeaderName"];

    // Gets field by position returning string
var field = csv.GetField( 0 );



 // Gets field by position returning int
    var field = csv.GetField<int>( 0 );

// Gets field by header name returning bool
var field = csv.GetField<bool>( "IsTrue" );

// Gets field by header name returning object
var field = csv.GetField( typeof( bool ), "IsTrue" );
//按标题名
变量字段=csv[“HeaderName”];
//按返回字符串的位置获取字段
var字段=csv.GetField(0);
//按返回int的位置获取字段
var字段=csv.GetField(0);
//按返回bool的标头名称获取字段
var field=csv.GetField(“IsTrue”);
//按返回对象的标头名称获取字段
var field=csv.GetField(typeof(bool),“IsTrue”);

您似乎正在使用此库:

您的文件数据被引用意味着每个字段都用双引号括起来,因为某些字段可能包含字段分隔符(逗号)。在这种情况下,您应该通知库用于引用字段的字符是什么,这样当字段分隔符位于引号对内时,它就可以忽略字段分隔符的存在

此库提供您已经初始化的配置类。
您只需要将其添加到构造函数中

var config = new CsvConfiguration() 
                 { 
                     HasHeaderRecord = false,
                     Quote = '"'
                 };

请参见

上的属性列表,我将在
CvsReader
及其类似工具上寻找一些方法来进行拆分,这就是它的用途。如果您自己进行拆分,为什么还要麻烦使用工具?您能告诉我们您正在使用的确切csv帮助程序库(链接)吗?CsvReader是一个非常通用的副本,我在CsvReader中没有发现任何分裂。如果我从csvReadrer那里得到,对我来说没问题