LINQtoCSV | Как написать текст в конце файла CSV

96
12

Возможно ли записать данные в конце файла csv или одну строку после окончания файла csv при использовании библиотеки LINQToCSV.


Я использую LINQtoCSV и передаю List < > для записи данных. мой список < > похож на


x    y    z

1 4 5

1 5 3


Теперь я хочу сделать y * z для каждой записи и записать сумму в конце файла csv.


Sum = 35

Я искал это некоторое время, но не нашел никакого решения.

спросил(а) 2021-01-28T00:17:15+03:00 4 недели, 1 день назад
1
Решение
74

https://social.msdn.microsoft.com/Forums/vstudio/en-US/00c609c0-5048-4ef1-8c03-e7c6217d8a32/n-not-working-in-fileappendalltext?forum=csharpgeneral


File.AppendAllText(csvPath, ""); 

сделал трюк.


EDIT:

Я зациклил все записи List и собрал сумму y * z.


sum = 0;
for (int i= 0; i < myList.Count; i++)
sum += (y * z);

File.AppendAllText(csvPath, String.Concat("Sum = ", sum.ToString()));


Для записи в одной строке после окончания файла csv можно использовать среду .NewLine


File.AppendAllText(csvPath, Environment.NewLine);
File.AppendAllText(csvPath, String.Concat("Sum = ", sum.ToString()));

ответил(а) 2021-01-28T00:17:15+03:00 4 недели, 1 день назад
61

Я не знаю, если это то, что вам нужно, но я использовал что-то вроде этого в прошлом:


CsvContext csv = new CsvContext();
var models = csv.Read<CsvData>(@"c:\Icons\Windows7\Desktop\Book2.csv").ToList();
CsvData sum = new CsvData();
sum.z = models.Sum(m => m.y * m.z);
models.Add(sum);
csv.Write(models, @"c:\Icons\Windows7\Desktop\Book3.csv");

Где моя модель в этом примере:


public class CsvData
{
[CsvColumn(FieldIndex = 0)]
public int x { get; set; }
[CsvColumn(FieldIndex = 1)]
public int y { get; set; }
[CsvColumn(FieldIndex = 2)]
public int z { get; set; }
}

ответил(а) 2021-01-28T00:17:15+03:00 4 недели, 1 день назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема