>source

읽고 싶은 열이 많은 csv 파일이 있고 CSV에 새 열을 추가하고 다시 씁니다.

동적 개체로 읽을 수 있지만 새 열을 추가하려면 어떻게해야합니까?

CSVHelper를 사용하고 있습니다.

컬럼 수가 매우 많고 변경 될 수 있기 때문에 csv를 읽는 클래스를 정의하고 싶지 않습니다.

편집 1

답은 제가 찾고있는 것이었고 문제를 해결하는 데 도움이되었습니다.

누군가가 대답 한 질문을 제대로 설명했기 때문에이 질문에 무엇을 추가해야할지 확실하지 않습니다 (질문은 매우 기본적인 것처럼 보일 수 있지만 이것이 종료 할 이유가 될 수 없음)


  • 답변 # 1

    dynamic records = null;
    using (var sReader = new StringReader("Id,Name\n1,Test"))
    using (var csvReader = new CsvHelper.CsvReader(sReader, CultureInfo.InstalledUICulture))
    {
        records = csvReader.GetRecords<dynamic>().ToList();
    }
    foreach (var record in records)
    {
        record.NewColumn = "New Item";
    }
    using (var csvWriter = new CsvWriter(Console.Out, CultureInfo.InvariantCulture))
    {
        csvWriter.WriteRecords(records);
    }
    
    

    열을 동적으로 추가해야하는 경우 다음과 같이 추가 할 수 있습니다.

    foreach (var record in records)
    {
        var expandoDict = record as IDictionary<string, object>;
        
        expandoDict.Add("NewColumn", "New Item");
    }
    
    

관련 자료

  • 이전 azure - API Management에서 응답 버퍼링을 비활성화하고 즉시 플러시를 강제하는 방법은 무엇입니까?
  • 다음 python - discord py - 1 개만 충족해야하는데 왜 2 개 조건이 충족 되나요?