【问题标题】:How to use CSV Helper to read line by line in c#?如何使用 CSV Helper 在 C# 中逐行读取?
【发布时间】:2019-03-22 01:35:33
【问题描述】:

所以这是我目前正在使用的代码,但我并不特别想创建自己的阅读器。我的问题是我想逐行读取一个完整的csv文件,但是文件内容会不时变化,所以必须是通用的。

这是我目前使用的,

try
{
    var Lines = File.ReadAllLines(path);
    var csvRawData = from line in Lines select (line.Split(',')).ToArray();
    var csvData = csvRawData.ToList();
    return csvData;
}
catch (Exception ex)
{                
    MessageBox.Show(ex.Message);
    Logger.Log(ex.Message, true);
    return null;
}

返回的 csvData 是 List 类型。然后我手动将内容从中分离出来。

【问题讨论】:

标签: c# .net csv csvhelper line-by-line


【解决方案1】:

这是一个逐行读取的示例,其中第二行的“类型”与第一行不同:

    using (StreamReader reader = new StreamReader(filePath))
    {
        using (CsvReader csv = new CsvReader(reader))
        {
            csv.Read();

            Type1 sample = new Type1();
            sample.Id = csv.GetField<int>(0);
            sample.Lines = csv.GetField<int>(1);

            csv.Read();

            Type2 sample2 = new Type2();
            sample2.Angle = csv.GetField<double>(0);
            sample2.Distance = csv.GetField<int>(1);
        }
    }

【讨论】:

    【解决方案2】:

    您说CsvHelper,但从您的代码看来,您实际上并没有使用它。如果您正在使用它,您可以使用GetField 方法通过索引的标题名称来拉取字段。有关如何使用它的更多信息,请查看文档。
    https://joshclose.github.io/CsvHelper/examples/reading/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多