8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

没有迭代 foreach 循环,但计数为 1849,应该迭代所有

Alessandro Ballarin AleBalla 1月前

42 0

我正在使用 CsvHelper 读取 CSV 文件。这是我的代码(非常简单):使用(var reader = new StreamReader(\'example.csv\'))使用(var csv = new CsvReader(reader, CultureInfo.InvariantC...

我正在使用 CsvHelper 读取 CSV 文件。

这是我的代码(非常简单):

using (var reader = new StreamReader("example.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
    var records = csv.GetRecords<CsvData>();
    int i = 0;
    foreach (var record in records)
    {                    
        i++;
        Console.WriteLine($"Processed {i}/{records.Count()} records."); 
    }
}
Console.WriteLine("Script finished");

问题是我的代码没有循环 foreach,所以它不会打印任何东西...我在线上设置了一个断点, i++; 但它没有中断。

如果我打印 records.Count() 它将返回 3:

enter image description here

这可能是一个 CSV 文件的示例:

enter image description here

代码格式,方便您复制:

Size,Color
8,Yellow
2,Orange
13,Blue

这可能是 CsvData 类的一个例子:

public class CsvData
{        
    public decimal? Size { get; set; }
    public string Color { get; set; }
}

我应该如何将我的行解析迭代到我的 CsvData 类中以创建 List<CsvData> 或类似?

帖子版权声明 1、本帖标题:没有迭代 foreach 循环,但计数为 1849,应该迭代所有
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Alessandro Ballarin AleBalla在本站《c#》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 将集合转换为列表有效:

    enter image description here

    只需:

    List<CsvData> records = csv.GetRecords<CsvData>().ToList();
    

    代码结果(适合懒人)

    using (var reader = new StreamReader("example.csv"))
    using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
    {
        var records = csv.GetRecords<CsvData>().ToList();
        int i = 0;
        foreach (var record in records)
        {                    
            i++;
            Console.WriteLine($"Processed {i}/{records.Count()} records."); 
        }
    }
    Console.WriteLine("Script finished");
    
返回
作者最近主题: