# CSV Enumerable

> Kontrollü delimiter-separated veriyi satır satır typed nesnelere eşleyen; header/property eşlemesini bir kez yapan ve .gz girdiyi GZipStream üzerinden açan C# streaming yardımcı yazılımı.

- Author: Muhammet Ali Köker
- Language: tr
- Canonical: https://alikoker.com.tr/csv-enumerable-csharp
- Translation: https://alikoker.com.tr/en/csv-enumerable-csharp
- Published: 2020-02-15T12:00:00+03:00
- Modified: 2026-08-27T10:36:29+03:00
- Verified: 2026-08-27T10:36:29+03:00
- Type: project

`IEnumerable<T>` kullanmak tek başına bir veri işleme hattını verimli yapmıyor; tekrar eden satır yolunda neyin yeniden hesaplandığı daha önemli. Bu küçük C# projesinde model property'leri başlangıçta bulunuyor, dosyanın header satırı geldiğinde sütun indisi ile `PropertyInfo` arasındaki eşleme bir kez kuruluyor. Sonraki satırlar isim araması yapmak yerine bu konumsal haritayı kullanıyor.

`.gz` dosyalar önce diske açılmıyor; `GZipStream` üzerinden doğrudan okunuyor. Böylece dataset büyüdükçe tüm kayıtları tutan bir `List<T>` oluşmuyor. Yine de bu yaklaşımı “allocation-free” diye nitelemiyorum: satır ayrıştırması ve reflection assignment maliyetleri var.

Daha önemlisi kapsam sınırı açık. Bu sürüm her CSV lehçesini çözmeye çalışan RFC 4180 uyumlu genel parser değildir; quoted delimiter, escaped quote ve multiline field gerektiren veriler için tam özellikli parser tercih edilmelidir. Benzer şema-önhazırlama fikrinin veritabanı sorgu sonuçlarına uygulanmış hali [DbDataReader Streaming Serialization](/db-reader-streaming-serialization-csharp) projesidir.

Açıklayıcı yazı: [Enumerable CSV İşleme Algoritması](/enumerable-csv-isleme-algoritmasi)

GitHub: [GitHub](https://github.com/alikoker/csv-enumerable-csharp)  
Zenodo kaydı: [Zenodo](https://zenodo.org/records/22117451)  
DOI: [DOI](https://doi.org/10.5281/zenodo.22117451)

## Bu Çalışmaya Atıf

Köker, M. A. (2020). CSV Enumerable. alikoker.com.tr. https://alikoker.com.tr/csv-enumerable-csharp

- BibTeX: https://alikoker.com.tr/csv-enumerable-csharp.bib
- RIS: https://alikoker.com.tr/csv-enumerable-csharp.ris
- CSL-JSON: https://alikoker.com.tr/csv-enumerable-csharp.csl.json
