【问题标题】:How to read a certain column from a csv file?如何从 csv 文件中读取某个列?
【发布时间】:2021-03-21 00:26:37
【问题描述】:

我目前正在编写一个股票金融应用程序, 我的程序下载所选股票的 CSV 文件, 但现在我只想从一列中获取值, 我怎么做? 以及如何将所有值放入列表中,以便在 LiveChart 中使用它们:

Values = new ChartValues<double> { VALUELISTHERE },

我查看了很多帖子,但找不到任何工作。 (仅从一列中获取值。)

【问题讨论】:

  • 你知道如何阅读所有栏目吗?如果是这样,请执行此操作,然后通过 LINQ 语句运行其输出,该语句 Selects 仅是您感兴趣的列
  • CSV 文件是纯文本,因此直接只从一列获取值而不读取整个文件显然是不可能的。

标签: c# csv


【解决方案1】:

尝试使用CSVHelper 库。但我认为您无法从所有行中仅读取一列,但这里是图书馆页面上的 an example 可以提供帮助:

void Main()
{
    using (var reader = new StreamReader("path\\to\\file.csv"))
    using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
    {
        var record = new Stock();
        var list=new List<double>();
        var records = csv.EnumerateRecords(record);
        foreach (var r in records)
        {
            // r is the same instance as record.
            //ADD VALUES FOR REQUIRED COLUMN TO THE LIST
            list.Add(r.ChartValue);
        }
    }
}

public class Stock
{
    public double ChartValue { get; set; }
    public string Name { get; set; }
}

【讨论】:

  • 谢谢,我昨天开始工作了!但你知道我怎样才能得到这种格式的双数:0.00 或更大的 000.00 / 0.000.000 吗?
  • 文件中的任何示例行?如果它是那种格式(00.000),它应该能够以这种岁差读取它。
猜你喜欢
  • 2023-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 2019-05-27
  • 2021-10-02
  • 2013-03-23
相关资源
最近更新 更多