web-dev-qa-db-fra.com

Quelle est la meilleure façon d'obtenir la liste des noms de colonne à l'aide de CsvHelper?

J'essaie d'utiliser CsvHelper pour un projet. J'ai parcouru la documentation mais je n'ai pas trouvé de moyen de lire tous les noms de colonne avec une seule méthode. Comment puis-je obtenir facilement une liste de tous les noms d'en-tête de colonne avec CsvHelper? Je le fais comme ça actuellement mais je suppose qu'il y a une meilleure façon.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsvHelper;
using System.IO;

namespace Kg
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var reader = new StreamReader(@"myfile.csv"))
            {
                var csv = new CsvReader(reader);

                csv.Read();                  
                var has_header = true;
                var csv_headers = new List<string>();
                var header_index = 0;
                while (has_header)
                {
                    has_header = csv.TryGetField<string>(header_index, out string header_name);

                    if (has_header)
                    {
                        header_index += 1;
                        csv_headers.Add(header_name);

                    }

                }

                Console.WriteLine(csv_headers.Count);

            }
        }
}
19
B A

L'enregistrement d'en-tête se trouve dans le contexte csv. Il doit être lu au préalable avant d'accéder.

csv.Read();
csv.ReadHeader();
string[] headerRow = csv.Context.HeaderRecord;
23
Paul Wild