我目前正在尝试从 csv 文件中解析一个布尔值。我们注意到该值将成功解析Yesand Y(在任何情况下)但不会解析NoandN
我正在将值映射到类映射中,如下所示:
Map(m => m.Enabled).Name("Enabled").TypeConverterOption(false, string.Empty);
Run Code Online (Sandbox Code Playgroud)
是否有原因导致它会读取Yes但不会读取No,是否有办法添加解析能力no?
在 4.0.3 版本中,此功能有效。
void Main()
{
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
using (var reader = new StreamReader(stream))
using (var csv = new CsvReader(reader))
{
writer.WriteLine("Id,Name,IsSomething");
writer.WriteLine("1,one,Yes");
writer.WriteLine("2,two,Y");
writer.WriteLine("3,three,No");
writer.WriteLine("4,four,N");
writer.Flush();
stream.Position = 0;
csv.Configuration.RegisterClassMap<TestMap>();
csv.GetRecords<Test>().ToList().Dump();
}
}
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsSomething { get; set; }
}
public sealed class TestMap : ClassMap<Test>
{
public TestMap()
{
Map(m => m.Id);
Map(m => m.Name);
Map(m => m.IsSomething)
.TypeConverterOption.BooleanValues(true, true, "Yes", "Y")
.TypeConverterOption.BooleanValues(false, true, "No", "N");
}
}
Run Code Online (Sandbox Code Playgroud)
在 2.16.3 版本中,此功能有效。
void Main()
{
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
using (var reader = new StreamReader(stream))
using (var csv = new CsvReader(reader))
{
writer.WriteLine("Id,Name,IsSomething");
writer.WriteLine("1,one,Yes");
writer.WriteLine("2,two,Y");
writer.WriteLine("3,three,No");
writer.WriteLine("4,four,N");
writer.Flush();
stream.Position = 0;
csv.Configuration.RegisterClassMap<TestMap>();
csv.GetRecords<Test>().ToList().Dump();
}
}
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsSomething { get; set; }
}
public sealed class TestMap : CsvClassMap<Test>
{
public TestMap()
{
Map(m => m.Id);
Map(m => m.Name);
Map(m => m.IsSomething)
.TypeConverterOption(true, "Yes", "Y")
.TypeConverterOption(false, "No", "N");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5129 次 |
| 最近记录: |