🗃️

Convert object to Csv File

TechnologyC#
Editor of the PageLatif Bahadır ALTUN

Add NuGet package → CsvHelper

public class Project
{
    public string CustomerName { get; set; }
    public string Title { get; set; }
    public DateTime Deadline { get; set; }
}

public class Program
{

    static void Main(string[] args)
    {
        var data = new[]
        {
            new Project { CustomerName = "Big Corp", Title = "CRM updates", Deadline = DateTime.Today.AddDays(-2) },
            new Project { CustomerName = "Imaginary Corp", Title = "Sales system", Deadline = DateTime.Today.AddDays(1) }
        };

        using (var mem = new MemoryStream())
        using (var writer = new StreamWriter(mem))
        using (var csvWriter = new CsvWriter(writer))
        {
            csvWriter.Configuration.Delimiter = ";";
            csvWriter.Configuration.HasHeaderRecord = true;
            csvWriter.Configuration.AutoMap<Project>();

            csvWriter.WriteHeader<Project>();
            csvWriter.WriteRecords(data);

            writer.Flush();
            var result = Encoding.UTF8.GetString(mem.ToArray());
            Console.WriteLine(result);
        }
    }
}

OR

public class Project
{
    public string CustomerName;
    public string Title;
    public DateTime Deadline;
}

public class Program
{
    static void Main(string[] args)
    {
        var data = new[]
        {
            new Project { CustomerName = "Big Corp", Title = "CRM updates", Deadline = DateTime.Today.AddDays(-2) },
            new Project { CustomerName = "Imaginary Corp", Title = "Sales system", Deadline = DateTime.Today.AddDays(1) }
        };

        using (var mem = new MemoryStream())
        using (var writer = new StreamWriter(mem))
        using (var csvWriter = new CsvWriter(writer))
        {
            csvWriter.Configuration.Delimiter = ";";

						csvWriter.WriteField("Customer");
						csvWriter.WriteField("Title");
						csvWriter.WriteField("Deadline");
						csvWriter.NextRecord();

						foreach (var project in data)
						{
							csvWriter.WriteField(project.CustomerName);
							csvWriter.WriteField(project.Title);
							csvWriter.WriteField(project.Deadline);
							csvWriter.NextRecord();
						}

            writer.Flush();
            var result = Encoding.UTF8.GetString(mem.ToArray());
            Console.WriteLine(result);
        }
    }
}