C# CSV解析器TinyCsvParser使用示例:映射数组
作者:admin 时间:2023-5-22 11:39:49 浏览:在前面文章中,我介绍了C# CSV解析器TinyCsvParser一些使用示例,如果你有兴趣,可参阅:
在本文中,我将接续介绍C# CSV解析器TinyCsvParser使用示例:映射数组。
映射数组
要将一系列值解析为数组,你可以使用MapProperty
方法的重载,该方法需要一个RangeDefinition
对象。RangeDefinition(int startIndex, int endIndex)
获取数组的开始索引和结束索引(从零开始的包含索引)。
例子
// Copyright (c) Philipp Wagner. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using NUnit.Framework;
using System;
using System.Linq;
using System.Text;
using TinyCsvParser.Mapping;
using TinyCsvParser.Ranges;
namespace TinyCsvParser.Test.CsvParser
{
[TestFixture]
public class CsvParserArrayTest
{
private class Measurement
{
public string Id { get; set; }
public float[] Values { get; set; }
}
private class CsvMeasurementMapping : CsvMapping<Measurement>
{
public CsvMeasurementMapping()
{
MapProperty(0, x => x.Id);
MapProperty(new RangeDefinition(1, 2), x => x.Values);
}
}
[Test]
public void FloatArraysTest()
{
CsvParserOptions csvParserOptions = new CsvParserOptions(false, ';' );
CsvReaderOptions csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
CsvMeasurementMapping csvMapper = new CsvMeasurementMapping();
CsvParser<Measurement> csvParser = new CsvParser<Measurement>(csvParserOptions, csvMapper);
var stringBuilder = new StringBuilder()
.AppendLine("Device1;1.0;2.0")
.AppendLine("Device2;3.0;4.0");
var result = csvParser
.ReadFromString(csvReaderOptions, stringBuilder.ToString())
.ToList();
Assert.AreEqual(2, result.Count);
Assert.IsTrue(result.All(x => x.IsValid));
Assert.AreEqual("Device1", result[0].Result.Id);
Assert.IsNotNull(result[0].Result.Values);
Assert.AreEqual(2, result[0].Result.Values.Length);
Assert.AreEqual(1.0, result[0].Result.Values[0]);
Assert.AreEqual(2.0, result[0].Result.Values[1]);
Assert.AreEqual("Device2", result[1].Result.Id);
Assert.IsNotNull(result[1].Result.Values);
Assert.AreEqual(2, result[1].Result.Values.Length);
Assert.AreEqual(3.0, result[1].Result.Values[0]);
Assert.AreEqual(4.0, result[1].Result.Values[1]);
}
}
}
这是不是挺容易?
总结
本文介绍了C# CSV解析器TinyCsvParser使用示例:映射数组,你还可以通过以下文章参阅TinyCsvParser更多使用示例。
相关文章
相关文章
x
- 站长推荐