C# Csvhelper未正确解析到列表

C# Csvhelper未正确解析到列表,c#,csv,csvhelper,C#,Csv,Csvhelper,我试图用CSVHelper将提供的CSV文本读入列表,但它跳过了一些记录 我将下面图像中的记录设置为红色,以便更清楚地说明我的问题,它只将这些红色字段(总共52个)添加到列表中,而不在列表后面添加逗号分隔的文本,例如:488273148214526113。它添加了第一个,但跳过了1482和14526113。我也需要添加这些 代码 csv.Configuration.HasHeaderRecord = false; csv.Configuration.TrimFields = false; Li

我试图用CSVHelper将提供的CSV文本读入列表,但它跳过了一些记录

我将下面图像中的记录设置为红色,以便更清楚地说明我的问题,它只将这些红色字段(总共52个)添加到列表中,而不在列表后面添加逗号分隔的文本,例如:488273148214526113。它添加了第一个,但跳过了1482和14526113。我也需要添加这些

代码

csv.Configuration.HasHeaderRecord = false;
csv.Configuration.TrimFields = false;

List<int> playerInfo = csv.GetRecords<int>().ToList();
csv.Configuration.HasHeaderRecord=false;
csv.Configuration.TrimFields=false;
List playerInfo=csv.GetRecords().ToList();
图像

csv.Configuration.HasHeaderRecord = false;
csv.Configuration.TrimFields = false;

List<int> playerInfo = csv.GetRecords<int>().ToList();
红色标记不仅是这些,举例来说,它是关于所有的第一次记录。

使用系统;
使用System.Collections.Generic;
使用System.IO;
使用CsvHelper;
命名空间堆栈1
{
班级计划
{
静态void Main(字符串[]参数)
{
//整数列表
var result=新列表();
//总数
整数和=0;
int记录值;
使用(TextReader fileReader=File.OpenText(@“C:\sample.csv”))
{
var csv=新的CsvReader(文件阅读器);
csv.Configuration.HasHeaderRecord=false;
csv.Configuration.TrimFields=false;
而(csv.Read())
{
for(var i=0;csv.TryGetField(i,out recordValue);i++)
{
结果。添加(记录值);
总和+=记录值;
}
}
}
控制台写入线(总和);
Console.ReadLine();
}
}
}

调用
csv.GetRecords()
CSVHelper时,会将每行(行)的全部映射到指定的类型。您正在映射到类型
int
。CSV的每行中有3个值。这3个值不能映射到单个
int
。CSVHelper只需映射每行中的第一条记录

如果要使用CsvReader,应该定义一个自定义类(具有3个int属性)并使用
csv.GetRecords()
。您可能还希望/需要创建自定义CsvClassMap。CSVHelper文档非常优秀:


或者,您可以使用不进行映射或类型转换的。它只是为每一行返回一个
字符串[]

这不是我的解决方案。你到底想从csv文件中得到什么?它不会得到逗号(,)后面的最后两条记录。示例:487207148415047920。从这些数据中,它只将487207添加到列表中。但我还需要在列表中添加1484和15047920。getRecords没有正确执行此操作。我已经用上面的示例代码进行了验证。请检查您的CSV文件格式。另外,如果您使用我的代码,请告诉我输出是什么。结果是它只返回前两个。示例行:468709152616860019 636178,7074322386482,80207214现在它只返回468709和1526作为单独的列表项。我的csv格式可能不正确吗?