C#:
Работа с CSV

Как

Чтение файлов CSV

using System;
using System.IO;

class ReadCSVExample
{
    static void Main()
    {
        string path = "data.csv";
        using (var reader = new StreamReader(path))
        {
            while (!reader.EndOfStream)
            {
                var line = reader.ReadLine();
                var values = line.Split(',');
                // Теперь сделайте что-то со значениями, например, напечатайте их
                Console.WriteLine(String.Join(" | ", values));
            }
        }
    }
}

Пример вывода:

John | Doe | [email protected]
Jane | Smith | [email protected]

Запись файлов CSV

using System;
using System.IO;

class WriteCSVExample
{
    static void Main()
    {
        string path = "output.csv";
        var records = new[]
        {
            new[] {"Name", "Age", "Email"},
            new[] {"Alice", "23", "[email protected]"},
            new[] {"Bob", "30", "[email protected]"}
        };

        using (var writer = new StreamWriter(path))
        {
            foreach (var record in records)
            {
                var line = String.Join(",", record);
                writer.WriteLine(line);
            }
        }
        Console.WriteLine($"Данные записаны в {path}");
    }
}

Пример вывода:

Данные записаны в output.csv

Углубление

CSV существует с начала времен вычислений, служа мостом между разными системами. Он не идеален — не имеет стандартной кодировки символов и плохо поддерживает многострочные поля без надежного парсера. Здесь на сцену выходят форматы вроде JSON и XML, предлагая больше сложности, но лучшую структуру для иерархических данных.

Под капотом вы обычно манипулируете строками, либо с использованием встроенных методов string, либо библиотеки вроде CsvHelper могут добавить дополнительную мощь вашей работе с CSV, предоставляя больше функций и изящно обрабатывая крайние случаи. Помните, в .NET нет встроенной обработки CSV, так что вы остаетесь наедине с манипуляциями со строками или можете выбрать стороннюю библиотеку.

Смотрите также

Для более глубокого изучения манипуляции с CSV в C#:

Узнайте больше о альтернативах CSV: