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);
}
}
}
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;