Добавить столбцы в .csv с помощью StreamReader и StreamWriter - PullRequest
0 голосов
/ 17 января 2019

Я читаю и пишу некоторые CSV-файлы, которые хранятся в хранилище BLOB-объектов Azure.

Файлы имеют заголовки, и я хотел бы добавить 2 дополнительных столбца с определенными заголовками и значениями в файлы и записать их в другое место. Я использую StreamReader и StreamWriter для чтения и записи в файлы, но мне было трудно добавить, как я обычно делаю с Метод File.ReadLines.

Новые столбцы и связанные значения - это то, что я хотел бы записать в новый BLOB-объект, изображенный ниже.


|Column A|Column B|Column C | New Column 1 | New Column 2 |
|--------|--------|---------|--------------|--------------|
|   1    |   2    |   3     |   new value  |  new value   |   
|   4    |   5    |   6     |   new value  |  new value   |     

* РЕДАКТИРОВАТЬ - ниже добавлен код, который подчеркивает, какую функциональность я бы хотел, но я ограничен из-за работы с потоками

            var csv = 
                File.ReadLines(rawfilePath).Select((line, index) => index == 0
              ? line + ",Order"
              : line + "," + index.ToString())
           .ToList();

            File.WriteAllLines(processedfilePath, csv);

1 Ответ

0 голосов
/ 17 января 2019

Я думаю, что с классами работать намного проще, вы можете использовать любую библиотеку, которая работает с сериализацией CSV (de), и делать это следующим образом:

  • создать класс, представляющий строку
  • добавить столбцы (свойства класса), которые вы хотите
  • загрузка и десериализация CSV для массива объектов класса
  • заполнить новые столбцы данными (они будут иметь нулевое значение или значение по умолчанию после десериализации)
  • сериализует массив объектов в CSV и загружает файл

Вот пример:

https://stackoverflow.com/a/2094885/10496806

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...