c# - Filehelpers CSV 解析。如何使用 FieldQuoted 属性?

标签 c# parsing csv filehelpers

我有一个如下所示的 CSV:

a,b,c
a,b,c
a,"b,c",d

我用属性标记分隔类中的第二个字段:

[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.AllowForRead)]
public String ExchangeRate;

但是第 3 行仍然将“b,c”解析为 2 个独立的值。

你知道我做错了什么吗?

谢谢

最佳答案

我看不出您的代码有任何问题。我刚刚检查过:以下程序运行良好:

[DelimitedRecord(",")]
public class MyClass
{
    public string Field1;
    [FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.AllowForRead)]
    public string ExchangeRate;
    public string Field3;
}

class Program
{
    static void Main(string[] args)
    {
        var engine = new FileHelperEngine<MyClass>();
        string fileAsString = @"a,b,c" + Environment.NewLine +
                              @"a,b,c" + Environment.NewLine + 
                              @"a,""b,c"",d";
        MyClass[] validRecords = engine.ReadString(fileAsString);

        // Check the ExchangeRate values for rows 0, 1, 2 are as expected
        Assert.AreEqual("b", validRecords[0].ExchangeRate);
        Assert.AreEqual("b", validRecords[1].ExchangeRate);
        Assert.AreEqual("b,c", validRecords[2].ExchangeRate);

        Console.ReadKey();
    }
}

关于c# - Filehelpers CSV 解析。如何使用 FieldQuoted 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10634806/

相关文章:

java - 解析日期时出现异常

javascript - Highcharts:对多个 CSV 文件中的 x 轴值进行排序

c# - 在 Visual Studio 下管理多个目标项目

c# - Backgroundworker 在自己的类中处理

python - 如何理解和解决PLY中的冲突

mysql - 我如何将 .csv 数据转换为 mysql?

c# - 如何将 C# 中的 2 个 SQL 过程的结果附加到单个 CSV 文件中?

C# PKCS7 智能卡数字签名 - 文档自签名以来已被更改或损坏

c# - 打开表单时如何设置对TextBox的关注?

android - Android上JSON解析的优化