C#:
Trabajando con CSV

Cómo hacerlo:

Trabajar con archivos CSV en C# se puede lograr a través del espacio de nombres System.IO para operaciones básicas, y para manipulaciones más complejas o para manejar archivos más grandes sin problemas, se podría considerar bibliotecas de terceros como CsvHelper. A continuación, se muestran ejemplos de cómo leer y escribir en archivos CSV utilizando ambos enfoques.

Leyendo un archivo CSV usando System.IO

using System;
using System.IO;

class ReadCSV
{
    static void Main()
    {
        string filePath = @"ruta\al\tu\archivo.csv";
        // Leyendo todas las líneas del archivo CSV
        string[] csvLines = File.ReadAllLines(filePath);
        
        foreach (string line in csvLines)
        {
            string[] rowData = line.Split(',');
            Console.WriteLine($"Primera Columna: {rowData[0]}, Segunda Columna: {rowData[1]}");
        }
    }
}

Salida de muestra:

Primera Columna: Nombre, Segunda Columna: Edad
Primera Columna: John Doe, Segunda Columna: 30

Escribiendo en un archivo CSV usando System.IO

using System;
using System.Collections.Generic;
using System.IO;

class WriteCSV
{
    static void Main()
    {
        string filePath = @"ruta\al\tu\salida.csv";
        var lines = new List<string>
        {
            "Nombre,Edad",
            "John Doe,30",
            "Jane Smith,25"
        };
        
        File.WriteAllLines(filePath, lines);
        Console.WriteLine("Archivo CSV escrito.");
    }
}

Salida de muestra:

Archivo CSV escrito.

Usando CsvHelper para Leer CSV

Para usar CsvHelper, primero, agrega el paquete CsvHelper a tu proyecto usando el Gestor de Paquetes NuGet.

using CsvHelper;
using System.Globalization;
using System.IO;
using System.Linq;
using CsvHelper.Configuration;

class ReadCSVWithCsvHelper
{
    static void Main()
    {
        string filePath = @"ruta\al\tu\archivo.csv";

        using (var reader = new StreamReader(filePath))
        using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
        {
            var records = csv.GetRecords<dynamic>().ToList();
            foreach (var record in records)
            {
                Console.WriteLine($"Primera Columna: {record.Name}, Segunda Columna: {record.Age}");
            }
        }
    }
}

Salida de muestra:

Primera Columna: John Doe, Segunda Columna: 30
Primera Columna: Jane Smith, Segunda Columna: 25

Usando CsvHelper para Escribir CSV

using CsvHelper;
using System.Globalization;
using System.IO;
using System.Collections.Generic;
using CsvHelper.Configuration;

class WriteCSVWithCsvHelper
{
    public class Persona
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

    static void Main()
    {
        string filePath = @"ruta\al\tu\salida.csv";
        var records = new List<Persona>
        {
            new Persona { Name = "John Doe", Age = 30 },
            new Persona { Name = "Jane Smith", Age = 25 }
        };

        using (var writer = new StreamWriter(filePath))
        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
        {
            csv.WriteRecords(records);
        }
        
        Console.WriteLine("Archivo CSV escrito con CsvHelper.");
    }
}

Salida de muestra:

Archivo CSV escrito con CsvHelper.