C# CsvHelper 不修剪字段中的空格
C# CsvHelper not trimming the spaces in the fields
我正在使用 CsvHelper http://csvhelper.com 版本 2.16.3。我想解析一个 csv 文件,修剪每个单元格中的所有额外空间。
这是我失败的单元测试
[Fact]
public void GetNextBatch_should_trim_every_cell()
{
var csvService = new CsvService();
var stream = new MemoryStream();
var streamWriter = new StreamWriter(stream);
streamWriter.WriteLine(" 123 , hello ");
streamWriter.Flush();
stream.Position = 0;
var csvParser = new CsvParser(new StreamReader(stream, true), new CsvConfiguration
{
IsHeaderCaseSensitive = false,
SkipEmptyRecords = true,
TrimFields = true,
TrimHeaders = true
});
var res = csvService.GetNextBatch(csvParser, 10);
Assert.Equal("123", res.First()[0]);
Assert.Equal("hello", res.First()[1]);
}
public IEnumerable<string[]> GetNextBatch(CsvParser csvParser, int batchSize)
{
var list = new List<string[]>();
while (list.Count < batchSize)
{
var rows = csvParser.Read();
if (rows == null)
break;
list.Add(rows);
}
return list;
}
当我运行测试时这是结果
Assert.Equal() 失败
↓(位置 0)
预期:123
实际:123
↑ (位置 0)
我做错了什么?
谢谢
我以错误的方式使用了该库,我应该按照文档中的建议使用 CsvReader 而不是 CsvParser。
我正在使用 CsvHelper http://csvhelper.com 版本 2.16.3。我想解析一个 csv 文件,修剪每个单元格中的所有额外空间。
这是我失败的单元测试
[Fact]
public void GetNextBatch_should_trim_every_cell()
{
var csvService = new CsvService();
var stream = new MemoryStream();
var streamWriter = new StreamWriter(stream);
streamWriter.WriteLine(" 123 , hello ");
streamWriter.Flush();
stream.Position = 0;
var csvParser = new CsvParser(new StreamReader(stream, true), new CsvConfiguration
{
IsHeaderCaseSensitive = false,
SkipEmptyRecords = true,
TrimFields = true,
TrimHeaders = true
});
var res = csvService.GetNextBatch(csvParser, 10);
Assert.Equal("123", res.First()[0]);
Assert.Equal("hello", res.First()[1]);
}
public IEnumerable<string[]> GetNextBatch(CsvParser csvParser, int batchSize)
{
var list = new List<string[]>();
while (list.Count < batchSize)
{
var rows = csvParser.Read();
if (rows == null)
break;
list.Add(rows);
}
return list;
}
当我运行测试时这是结果
Assert.Equal() 失败
↓(位置 0)
预期:123
实际:123
↑ (位置 0)
我做错了什么? 谢谢
我以错误的方式使用了该库,我应该按照文档中的建议使用 CsvReader 而不是 CsvParser。