技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

C# CSV解析器TinyCsvParser使用示例:解析自定义格式

作者:admin    时间:2023-5-22 9:45:45    浏览:

在前文中,我介绍了C#解析CSV数据的方法——使用TinyCsvParser。TinyCsvParser 是一个 .NET 库,用于以简单的方式解析 CSV 数据。在上文中主要介绍了TinyCsvParser的基本用法。

在本文中,将介绍TinyCsvParser的使用示例,通过四个方面来介绍。

通过教程学习如何完成常见任务的方法。

解析自定义格式

TinyCsvParser对数据格式做出假设,默认为 .NET 默认格式。这对于简单的 CSV 文件通常就足够了,但有时 CSV 数据带有特殊格式的值。当默认转换器无法解析格式时,需要自定义转换器。

这听起来比实际上更复杂。所有现有的转换器都支持自定义用于解析值的格式。格式化字符串与 .NET 中用于解析字符串值的字符串相同。

使用自定义格式读取日期

想象一下,客户端发送具有奇怪日期格式的数据并像这样写入日期2004###01###25。这些值无法使用默认日期格式进行解析,但在TinyCsvParser中,可以使用自定义日期时间格式DateTimeConverter 进行映射。

要使用自定义转换器,你只需将 Converter 传递给MapProperty方法即可为属性映射定义自定义转换器。

private class CsvPersonMappingWithCustomConverter : CsvMapping<Person>
{
        public CsvPersonMappingWithCustomConverter()
        {
                MapProperty(0, x => x.FirstName);
                MapProperty(1, x => x.LastName);
                MapProperty(2, x => x.BirthDate, new DateTimeConverter("yyyy###MM###dd"));
        }
}

使用自定义格式读取布尔值

假设你想在 CSV 值和布尔值之间进行映射。该库假设 true 的字符串值为 "true",false 的字符串值为"false"。但现在假设你的 CSV 数据使用文本"ThisIsTrue"作为布尔值true,并"ThisIsFalse"作为布尔值false

然后你必须实例化并使用BoolConverter这样的:

new BoolConverter("ThisIsTrue", "ThisIsFalse", StringComparison.InvariantCulture);

这个转换器可以像这样在 Property Mapping 中使用:

public class EntityWithBoolean
{
    public bool PropertyBoolean { get; set; }
}

public class BooleanMappingWithCustomConverter : CsvMapping<EntityWithBoolean>
{
    public BooleanMappingWithCustomConverter()
    {
        MapProperty(0, x => x.PropertyBoolean, new BoolConverter("ThisIsTrue", "ThisIsFalse", StringComparison.InvariantCulture));
    }
}

总结

本文介绍了C# CSV解析器TinyCsvParser使用示例:解析自定义格式,我们将在后面继续介绍TinyCsvParser的更多使用示例。

相关文章

标签: asp.net  CSharp  TinyCsvParser  CSV  
x
  • 站长推荐
/* 左侧显示文章内容目录 */