PocketCsvReader 2.17.0
See the version list below for details.
dotnet add package PocketCsvReader --version 2.17.0
NuGet\Install-Package PocketCsvReader -Version 2.17.0
<PackageReference Include="PocketCsvReader" Version="2.17.0" />
paket add PocketCsvReader --version 2.17.0
#r "nuget: PocketCsvReader, 2.17.0"
// Install PocketCsvReader as a Cake Addin #addin nuget:?package=PocketCsvReader&version=2.17.0 // Install PocketCsvReader as a Cake Tool #tool nuget:?package=PocketCsvReader&version=2.17.0
PocketCsvReader
PocketCsvReader is a highly efficient and lightweight library tailored for parsing delimited flat files like CSV and TSV. With a focus on simplicity and performance, it offers seamless file reading and supports versatile outputs, including DataTables, string arrays, strongly-typed object mapping and an IDataReader interface. Designed for projects requiring rapid data ingestion with minimal configuration, PocketCsvReader is a dependable solution for handling structured flat-file data effortlessly.
About | Install | Quick-start
About
Continuous integration builds:
Install
Replace <VersionNumber>
with the desired version in each of the following solutions. If no version is specified, the latest version will be installed.
NuGet CLI
Open a command prompt or terminal.
Run the following command:
nuget install PocketCsvReader -Version <VersionNumber>
Visual Studio Package Manager Console
Open the Package Manager Console from Tools > NuGet Package Manager > Package Manager Console.
Run the following command:
Install-Package PocketCsvReader -Version <VersionNumber>
Dotnet-CLI
Open a terminal or command prompt.
Navigate to the directory of your project.
Run the following command:
dotnet add package PocketCsvReader --version <VersionNumber>
Quick-start
The CsvReader
class is a flexible and efficient tool for reading and parsing CSV files or streams into various formats, such as DataTable
, IDataReader
, or strongly-typed objects. This documentation explains the basics of how to use the class, including common use cases and examples.
Features
- Read CSV files or streams into a
DataTable
. - Access CSV data in a forward-only, read-only manner using
IDataReader
. - Map CSV records to strongly-typed objects.
- Map CSV records to array of strings.
- Customizable CSV parsing profiles for delimiters, quote handling, and more.
- Supports encoding detection through the
IEncodingDetector
interface.
Initialization
You can create an instance of CsvReader
with various configurations:
// Default configuration: comma-delimited, double quotes for escaping, 4 KB buffer size.
var csvReader = new CsvReader();
// Custom CSV profile (e.g., semicolon-delimited, double quotes for escaping).
var csvReaderWithProfile = new CsvReader(CsvProfile.SemiColumnDoubleQuote);
// Custom buffer size for large files.
var csvReaderWithBuffer = new CsvReader(bufferSize: 64 * 1024);
// Both custom profile and buffer size.
var csvReaderCustom = new CsvReader(CsvProfile.SemiColumnDoubleQuote, bufferSize: 16 * 1024);
Reading CSV Data
Reading Into a DataTable
The ToDataTable
method reads CSV data and returns a DataTable
containing all rows and fields.
DataTable dataTable = csvReader.ToDataTable("example.csv");
or to read from a stream,
using var stream = new FileStream("example.csv", FileMode.Open, FileAccess.Read);
DataTable dataTable = csvReader.ToDataTable(stream);
Accessing Data with IDataReader
The ToDataReader
method provides a forward-only, read-only IDataReader
for processing large files efficiently.
using var stream = new FileStream("example.csv", FileMode.Open, FileAccess.Read);
using var reader = csvReader.ToDataReader(stream);
while (reader.Read())
{
Console.WriteLine(reader[0]); // Access the first column of the current row.
}
Reading as Arrays
using var stream = new FileStream("example.csv", FileMode.Open, FileAccess.Read);
foreach (var record in csvReader.ToArrayString(stream))
{
Console.WriteLine(string.Join(", ", record));
}
Mapping Records to Strongly-Typed Objects
The To<T>
method maps CSV records to objects of a specified type.
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
using var stream = new FileStream("example.csv", FileMode.Open, FileAccess.Read);
IEnumerable<Person> people = csvReader.To<Person>(stream);
foreach (var person in people)
{
Console.WriteLine($"{person.FirstName} {person.LastName}, Age: {person.Age}");
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on PocketCsvReader:
Package | Downloads |
---|---|
NBi.Framework
This package contains the NBi framework and references each dll to your project. This package is not intended to be directly used by end-users willing to create test-suites. Check the package NBi.VisualStudio, if you want to facilitate the usage of NBi from Visual Studio. NBi is a testing framework (add-on to NUnit) for Business Intelligence and Data Quality. It supports the Microsoft Data platform (SQL Server Database engine, SSIS, SSAS, SSRS) but also MySQL, PostgreSQL and other NoSQL solutions. |
|
NBi.Framework.Tools
This package contains the NBi framework and references each dll to your project. This package is not intended to be directly used by end-users willing to create test-suites. Check the package NBi.VisualStudio, if you want to facilitate the usage of NBi from Visual Studio. NBi is a testing framework (add-on to NUnit) for Business Intelligence and Data Quality. It supports the Microsoft Data platform (SQL Server Database engine, SSIS, SSAS, SSRS) but also MySQL, PostgreSQL and other NoSQL solutions. |
|
Didot.Core
Package Description |
|
Packata.Core
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.21.0 | 64 | 1/6/2025 |
2.20.2 | 67 | 1/6/2025 |
2.20.1 | 70 | 1/5/2025 |
2.20.0 | 76 | 1/5/2025 |
2.19.0 | 71 | 1/5/2025 |
2.18.1 | 66 | 1/5/2025 |
2.18.0 | 87 | 1/5/2025 |
2.17.0 | 98 | 1/4/2025 |
2.16.0 | 97 | 1/4/2025 |
2.15.0 | 82 | 1/4/2025 |
2.14.4 | 125 | 12/31/2024 |
2.14.2 | 112 | 12/30/2024 |
2.14.1 | 200 | 12/27/2024 |
2.14.0 | 134 | 12/27/2024 |
2.13.1 | 105 | 12/26/2024 |
2.13.0 | 213 | 12/22/2024 |
2.12.0 | 137 | 12/21/2024 |
2.11.1 | 150 | 12/17/2024 |
2.11.0 | 125 | 12/15/2024 |
2.10.0 | 82 | 12/14/2024 |
2.9.7 | 90 | 12/13/2024 |
2.9.4 | 192 | 11/30/2024 |
2.9.3 | 94 | 11/30/2024 |
2.9.2 | 86 | 11/30/2024 |
2.9.0 | 87 | 11/30/2024 |
2.8.2 | 106 | 11/24/2024 |
2.8.1 | 107 | 11/23/2024 |
2.8.0 | 197 | 11/17/2024 |
2.7.1 | 89 | 11/16/2024 |
2.7.0 | 85 | 11/16/2024 |
2.6.0 | 92 | 11/16/2024 |
2.5.2 | 94 | 11/16/2024 |
2.5.1 | 95 | 11/15/2024 |
2.5.0 | 95 | 11/15/2024 |
2.4.3 | 91 | 11/14/2024 |
2.4.2 | 94 | 11/12/2024 |
2.4.1 | 93 | 11/11/2024 |
2.4.0 | 97 | 11/10/2024 |
2.3.1 | 100 | 11/10/2024 |
2.3.0 | 109 | 11/9/2024 |
2.2.1 | 97 | 11/8/2024 |
2.2.0 | 102 | 11/7/2024 |
2.0.1 | 97 | 11/6/2024 |
2.0.0 | 98 | 7/31/2024 |
1.1.0-beta.1 | 429 | 3/26/2019 |
1.0.0 | 48,372 | 3/26/2019 |
0.1.0-beta.9 | 423 | 2/4/2019 |
0.1.0-beta.8 | 390 | 1/20/2019 |
0.1.0-beta.7 | 390 | 1/17/2019 |
0.1.0-beta.6 | 446 | 1/16/2019 |
0.1.0-beta.4 | 415 | 1/15/2019 |
0.1.0-beta.3 | 404 | 1/15/2019 |
0.1.0-beta.2 | 407 | 1/15/2019 |
0.1.0-beta.1 | 405 | 1/7/2019 |