public static IEnumerable <T> DeserializeList <T>(string input, CsvConvertSettings settings = null) where T : new() { settings ??= new CsvConvertSettings(); var parsedRows = Parser.Parser.Parse(input, new Settings { Separator = settings.Separator }); if (parsedRows.Count <= 1) { return(new List <T>()); } var headers = parsedRows[0]; var accessors = typeof(T) .GetAccessors() .ToDictionary( gs => gs.Name, gs => gs); return(Enumerable.Range(1, parsedRows.Count - 1) .Select(rowIndex => new { rowIndex, row = parsedRows[rowIndex] }) .Select(rowTuple => DeserializeObject <T>( headers, accessors, rowTuple.row, rowTuple.rowIndex, settings.OnError))); }
public static string SerializeList <T>(IEnumerable <T> input, CsvConvertSettings settings = null) { if (input == null) { return(""); } settings ??= new CsvConvertSettings(); var accessors = typeof(T) .GetAccessors() .ToList(); var lines = new List <string>(); if (settings.EmitHeader) { lines.Add(string.Join(settings.Separator, accessors .Select(accessor => SanitizeOutput(accessor.Name, settings.Separator)))); } lines.AddRange(input .Select(item => string.Join( settings.Separator, accessors .Select(accessor => SanitizeOutput( accessor.ToString(item), settings.Separator))))); return(lines.Count == (settings.EmitHeader ? 1 : 0) ? "" : string.Join(Environment.NewLine, lines)); }
public static string Serialize <T>(T input, CsvConvertSettings settings = null) { return(input == null ? "" : SerializeList(new[] { input }, settings)); }
public static string Serialize <T>(T input, CsvConvertSettings settings = null) { return(Serializer.Serialize(input, settings)); }
public static IEnumerable <T> DeserializeList <T>(string input, CsvConvertSettings settings = null) where T : new() { return(Deserializer.DeserializeList <T>(input, settings)); }
public static T Deserialize <T>(string input, CsvConvertSettings settings = null) where T : new() { return(Deserializer.Deserialize <T>(input, settings)); }
public static string SerializeList <T>(IEnumerable <T> input, CsvConvertSettings settings = null) { return(Serializer.SerializeList(input, settings)); }
public static T Deserialize <T>(string input, CsvConvertSettings settings = null) where T : new() { return(DeserializeList <T>(input, settings) .FirstOrDefault()); }