C# (.NET) में CSV के साथ कार्य: लाइब्रेरीज़ और कोड उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) में CSV के साथ कार्य: सरल पार्सिंग से लेकर उन्नत लाइब्रेरी तक

\n\n

CSV (Comma-Separated Values) — सारणीबद्ध डेटा के आदान-प्रदान के लिए सबसे सामान्य प्रारूपों में से एक है। .NET इकोसिस्टम में CSV के साथ कार्य करने के लिए कई दृष्टिकोण मौजूद हैं: अंतर्निहित साधनों से लेकर विशेष लाइब्रेरीज़ तक। इस लेख में हम सभी मुख्य तरीकों पर चर्चा करेंगे, कोड उदाहरण दिखाएंगे और आपके प्रोजेक्ट के लिए सर्वोत्तम उपकरण चुनने में मदद करेंगे।

\n\n

1. .NET के अंतर्निहित साधन (मैन्युअल पार्सिंग)

\n

सबसे सरल तरीका StreamReader और String.Split क्लास का उपयोग करना है। हालाँकि, यह विधि फ़ील्ड के अंदर कोट्स और कॉमा के एस्केपिंग को ध्यान में नहीं रखती है, इसलिए यह केवल जटिल डेटा के बिना सरल CSV फ़ाइलों के लिए उपयुक्त है।

\n\n
using System;\nusing System.IO;\nusing System.Linq;\n\npublic class SimpleCsvReader\n{\n    public static void ReadCsv(string filePath)\n    {\n        using (var reader = new StreamReader(filePath))\n        {\n            while (!reader.EndOfStream)\n            {\n                var line = reader.ReadLine();\n                var values = line.Split(',');\n                \n                // पंक्ति प्रसंस्करण\n                Console.WriteLine(string.Join(" | ", values));\n            }\n        }\n    }\n}
\n\n

कमियाँ: कोट्स को संभालता नहीं, बहु-पंक्ति फ़ील्ड का समर्थन नहीं करता, कोई टाइपिंग नहीं।

\n\n

2. TextFieldParser (Microsoft.VisualBasic) का उपयोग

\n

Microsoft.VisualBasic.FileIO नाम स्थान का TextFieldParser क्लास कोट्स और विभाजकों के साथ CSV को सही ढंग से संभाल सकता है। उपयोग के लिए Microsoft.VisualBasic असेंबली का संदर्भ जोड़ें।

\n\n
using Microsoft.VisualBasic.FileIO;\nusing System;\n\npublic class TextFieldParserExample\n{\n    public static void ParseCsv(string filePath)\n    {\n        using (var parser = new TextFieldParser(filePath))\n        {\n            parser.TextFieldType = FieldType.Delimited;\n            parser.SetDelimiters(",");\n            parser.HasFieldsEnclosedInQuotes = true;\n\n            while (!parser.EndOfData)\n            {\n                string[] fields = parser.ReadFields();\n                Console.WriteLine(string.Join(" | ", fields));\n            }\n        }\n    }\n}
\n\n

यह विधि बेहतर है, लेकिन फिर भी ऑब्जेक्ट में फ़ील्ड के मैन्युअल मैपिंग की आवश्यकता होती है।

\n\n

3. CsvHelper लाइब्रेरी — स्वर्ण मानक

\n

CsvHelper .NET में CSV के साथ कार्य करने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह RFC 4180 मानक का पूर्ण समर्थन, क्लास पर स्वचालित मैपिंग, LINQ समर्थन और उच्च प्रदर्शन प्रदान करती है।

\n\n

स्थापना

\n
dotnet add package CsvHelper
\n\n

ऑब्जेक्ट की सूची में CSV पढ़ने का उदाहरण

\n
using CsvHelper;\nusing CsvHelper.Configuration;\nusing System.Globalization;\nusing System.IO;\nusing System.Linq;\n\npublic class Person\n{\n    public int Id { get; set; }\n    public string Name { get; set; }\n    public string Email { get; set; }\n    public DateTime BirthDate { get; set; }\n}\n\npublic class CsvHelperReader\n{\n    public static List<Person> ReadPeople(string filePath)\n    {\n        using (var reader = new StreamReader(filePath))\n        using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))\n        {\n            return csv.GetRecords<Person>().ToList();\n        }\n    }\n}
\n\n

संग्रह से CSV लिखने का उदाहरण

\n
public static void WritePeople(string filePath, List<Person> people)\n{\n    using (var writer = new StreamWriter(filePath))\n    using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))\n    {\n        csv.WriteRecords(people);\n    }\n}
\n\n

उन्नत कॉन्फ़िगरेशन

\n
var config = new CsvConfiguration(CultureInfo.InvariantCulture)\n{\n    HasHeaderRec                    

अनुशंसाएँ