/// <summary> /// Writes the textual representation of the given values to the writer. /// </summary> /// <param name="values">The values to write.</param> /// <exception cref="System.ArgumentNullException">The values array is null.</exception> public void Write(object[] values) { if (isDisposed) { throw new ObjectDisposedException("SeparatedValueWriter"); } if (values == null) { throw new ArgumentNullException("values"); } if (values.Length != schema.ColumnDefinitions.Count) { throw new ArgumentException(Resources.WrongNumberOfValues, "values"); } if (isFirstLine) { if (isFirstRecordSchema) { buildSchema(writer); } isFirstLine = false; } string[] formattedValues = schema.FormatValues(values).Select(v => escape(v)).ToArray(); string joined = String.Join(separator, formattedValues); writer.Write(joined); writer.Write(recordSeparator); }
private IEnumerable <string> formatValues(object[] values) { if (schema == null) { StringColumn column = new StringColumn("a"); return(values.Select(v => column.Format(v))); } else { return(schema.FormatValues(values)); } }
private string[] formatValues(SeparatedValueSchema schema, object[] values) { if (schema == null) { string[] results = new string[values.Length]; for (int index = 0; index != results.Length; ++index) { results[index] = toString(values[index]); } return(results); } else { var metadata = injector == null ? Metadata : new SeparatedValueMetadata() { Schema = schema, Options = Metadata.Options, RecordCount = Metadata.RecordCount, LogicalRecordCount = Metadata.LogicalRecordCount }; return(schema.FormatValues(Metadata, values)); } }
/// <summary> /// Formats the given values assuming that they are in the same order as the column definitions. /// </summary> /// <param name="values">The values to format.</param> /// <returns>The formatted values.</returns> internal string[] FormatValues(object[] values) { return(schema.FormatValues(values)); }