Unable to write from List<string[]> to csv file

Aperta
#2,302 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
csharp
Ambito
data

Direzione di ricerca

The failure comes from header auto-mapping: the stack trace goes through ClassMap.AutoMap, CsvContext.AutoMap, CsvWriter.WriteHeader and CsvWriter.WriteRecords, so start by reading how WriteRecords picks a mapping for a string[] element type. Reproduce with a List<string[]> in a test. Done means writing string-array rows without the ConfigurationException, or confirming the intended usage is documented. The issue has gone about two years without a maintainer reply, so check for an existing answer first.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

Hi,

I am using CsvHelper 33.0.1

I have a list of string arrays that I want to write to a csv file, but I keep getting an error on csv.WriteRecords() or csv.WriteRecord()

CsvHelper.Configuration.ConfigurationException
HResult=0x80131500
Message=Types that inherit IEnumerable cannot be auto mapped. Did you accidentally call GetRecord or WriteRecord which acts on a single record instead of calling GetRecords or WriteRecords which acts on a list of records?
Source=CsvHelper
StackTrace:
at CsvHelper.Configuration.ClassMap.AutoMap(CsvContext context)
at CsvHelper.CsvContext.AutoMap(Type type)
at CsvHelper.CsvWriter.WriteHeader(Type type)
at CsvHelper.CsvWriter.WriteHeaderFromTypeT
at CsvHelper.CsvWriter.WriteRecords[T](IEnumerable`1 records)

This is an example of what I am doing:

void Main()
{
    var input = new List<string[]>()
    {
        new string[] { "a1", "a2" },
        new string[] { "b1", "b2" },
        new string[] { "c1", "c2" }
    };

    using (var writer = new StreamWriter(outputFile))
    using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
    {
        csv.WriteRecords(input);
    }
}

I've also tried

using (var writer = new StreamWriter(outputFile))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    foreach (var row in input)
    {
        csv.WriteRecord(row);
    }
}

Am I using WriteRecord()/WriteRecords() incorrectly? Thanks

Lingua principale
C#
Stelle
5.2k
Fork
1.1k
Merge medio
6m
PR unite (30g)
1

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di JoshClose/CsvHelper

Tutte le issue di JoshClose/CsvHelper

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.