protected async Task <IList <string> > ReadHeaderAsync(XsvReader xsvReader) { var header = Settings.HeaderStrings ?? Enumerable.Empty <string>(); if (Settings.HeaderExists) { header = await xsvReader.ReadXsvLineAsync(Settings.Delimiters); } return(header.ToList()); }
public async Task ReadAsync(TextReader reader, CancellationToken cancellationToken) { if (reader == null) { throw new ArgumentNullException("reader"); } if (cancellationToken == null) { throw new ArgumentNullException("cancellationToken"); } if (cancellationToken.IsCancellationRequested) { return; } using (var xsvReader = new XsvReader(reader, Settings.CommentToken)) { var headers = await ReadHeaderAsync(xsvReader); _columnHeaders = new XsvColumnHeaders(headers); _items.Clear(); while (!xsvReader.EndOfData) { if (cancellationToken.IsCancellationRequested) { return; } var row = await xsvReader.ReadXsvLineAsync(Settings.Delimiters); _items.Add(CreateXsvRow(headers, row)); } } }