C# Basic/Simple CSV builder

Date: 2022-04-12
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;

namespace Domain.Helpers
{
    public class CsvBuilder
    {
        private readonly List<List<object>> Lines = new();

        public void AddLine(params object[] data) => Lines.Add(data.ToList());
        private static string SerializeCsvValue(object x) => $"\"{Convert.ToString(x, CultureInfo.InvariantCulture).Replace("\"", "\"\"")}\"";

        public string Build(string separator = ";")
        {
            var sb = new StringBuilder();
            foreach (var line in Lines)
                sb.AppendLine(string.Join(separator, line.Select(SerializeCsvValue)));
            return sb.ToString();
        }
    }
}

61240cookie-checkC# Basic/Simple CSV builder