Csvhelper - 读取/获取所有行的单列?

Ste*_*eSD 1 c# csv csvhelper

嗨,我正在使用csvHelper读取具有可变列数的csv文件.第一行始终包含标题行.列数最初是未知的,有时有三列,有时有30多列.行数可以很大.我可以在csv文件中读取,但是如何处理每列数据.我需要对数据做一些基本的统计(例如min,max,stddev),然后以非csv格式写出来.这是我到目前为止的代码......

try{
    using (var fileReader = File.OpenText(inFile))
    using (var csvResult  = new CsvHelper.CsvReader(fileReader))
    {
        // read the header line   
        csvResult.Read();

        // read the whole file
        dynamic recs = csvResult.GetRecords<dynamic>().ToList();

        /* now how do I get a whole column ???
         * recs.getColumn ???
         * recs.getColumn['hadername'] ???
         */

    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

Ehs*_*n88 7

我不认为图书馆能够直接这样做.您必须从各个字段中读取您的列并将其添加到a List,但该过程通常很快,因为读者可以快速完成工作.例如,如果您想要的列是类型string,代码将如下所示:

List<string> myStringColumn= new List<string>();
using (var fileReader = File.OpenText(inFile))
    using (var csvResult  = new CsvHelper.CsvReader(fileReader))
    {
        while (csvResult.Read())
       {
         string stringField=csvResult.GetField<string>("Header Name");
         myStringColumn.Add(stringField);    
       }
    }
Run Code Online (Sandbox Code Playgroud)