Collections in C#

C# in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C#.NET in Hindi | Page:908 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Collections in C#: Collection .NET Framework का एक बहुत ही महत्वपूर्ण Part है क्योंकि ये Objects के Group को Represent करता है। .NET Framework में बहुत सारे Interfaces व Classes को Define किया गया है, जो कि विभिन्न प्रकार के Collections को Implement करते हैं। Collections कई प्रकार की Programming जरूरतों को पूरा करते हैं, जिनकी Common रूप से हमें काफी जरूरत पडती है।

इन Collection को सामान्‍यत: Develop करना काफी Typical काम होता है, इसलिए .NET Framework में इन Common रूप से काम आने वाले Data Structure Constructs को पहले से ही Well Define करके एक Library के रूप में Provide कर दिया गया है।

Predefined Collections के रूप में Array, Linked Lists, Stacks, Queues, Dictionary Hash Tables को मुख्‍य रूप से Define किया गया है, क्योंकि ये ऐसे Data Structures हैं, जिनकी जरूरत लगभग सभी .NET Applications में होती है।

.NET 2.0 तक केवल Non-Generic Collection Classes को ही Define किया गया था। लेकिन जब .NET 2.0 में Generics को Add किया गया, तो साथ ही साथ Generic Collections को भी Define किया गया। इसलिए .NET Framework में समान Generic व Non-Generic Collections की कुल संख्‍या दुगुनी है, क्योंकि एक ही Collection का Generic Version भी है और Non-Generic Version भी, जबकि .NET 4.0 में Add किए गए Task Parallel Library के साथ ही कई नई Thread-Safe Collection Classes को भी .NET Framework में Add किया गया है, जिन्हें उस समय उपयोग में लिया जा सकता है, जब किसी Collection को किसी Program के एक से ज्यादा Threads उपयोग में ले रहे होते हैं।

Collection API, .NET Framework का एक बहुत बडा API है और इसमें अच्छी पकड बनाना किसी भी Professional C# Developer के लिए बहुत जरूरी है। लेकिन हम यहां पर केवल कुछ Basic Collections के बारे में ही बात करेंगे, ताकि Collections के Fundamental को समझा जा सकें।

एक बार जब Collection का Basic समझ में आ जाता है, तो फिर बडी ही आसानी से .NET Framework द्वारा Provided विभिन्न प्रकार की जरूरतों से सम्बंधित Collections को आसानी से समझा जा सकता है व विभिन्न प्रकार की जरूरतों को पूरा करने के लिए उपयोग में लिया जा सकता है।

Collections की मुख्‍य विशेषता ये है कि Collections का प्रयोग करके हम हमारे Program द्वारा Handle किए जा रहे किसी Specific Type के Object को Standard तरीके से Group करते हुए Access व Manipulate कर सकते हैं।

.NET के सभी Collections को व्‍यवस्थित तरीके से Defined Interfaces के आधार पर Design किया गया है और इन Interfaces के आधार पर ही Collections के बहुत सारे Built-In Implementations भी Create किए गए है, जिन्हें ArrayList, Hashtable, Stack Queue आदि नामों से जाना जाता है।

इतना ही नहीं, .NET हमें इन्हीं Interfaces को अपने स्वयं के User Defined Collections के साथ भी Implement करने की सुविधा Provide करता है। परिणामस्वरूप हम हमारे स्वयं के बना, Collections को भी Exactly उसी Standard तरीके से Use कर सकते हैं, जिस तरीके से इन Predefined Collections को Use करते हैं। हालांकि हमें हमारे स्वयं के Collections Create करने की जरूरत कभी-कभार ही पडती है।

.NET Framework मूल रूप से Generic, Non-Generic, Specialized, Bit-Based व Concurrent यानी कुल पांच प्रकार के Collections को Support करता है। Non-Generic Collections के रूप में कई Fundamental Data Structures जैसे कि Dynamic Array, Queue, Stack आदि को Implement किया गया है। इनके अलावा Dictionaries को भी Implement किया गया है, जिसमें हम Key/Value Pair के रूप में अपने Data को Store कर सकते हैं।

Non-Generic Collections के विषय में समझने वाली बात ये है कि ये object Type के Data पर Operate होते हैं। अत: इन्हें किसी भी प्रकार के Data को Store करने के लिए Use किया जा सकता है और समान Collection में विभिन्न प्रकार के Data को Mix भी किया जा सकता है। हालांकि Non-Generic Collections, object Type Data Store करते हैं, इसलिए ये Type-Safe नहीं होते जिसकी वजह से हमें Appropriate Type Casting का ध्‍यान रखना जरूरी होता है।

.NET Framework की सभी Non-Generic Classes व Interfaces को System.Collections नाम के Namespace में Define किया गया है। इसलिए यदि हम Non-Generic Collections को अपने Program में Use करना चाहते हैं, तो हमें इस Namespace को अपने Program में using Keyword के माध्‍यम से Import करना जरूरी होता है।

Specialized Collections Specific Type के Data पर Operate होते हैं या Unique तरीके से काम करते हैं। उदाहरण के लिए Strings को Handle करने के लिए Define की गई Classes को Specialized Collections का हिस्सा बनाया गया है। .NET Framework में ऐसे भी Specialized Collections हैं जो Singly Linked List Use करते हैं। Specialized Collections Related सभी Classes व Interfaces को System.Collections.Specialized नाम के Namespace में Define किया गया है।

.NET में BitArray नाम का एक Collection Define किया गया है, जो कि Bit-Based Collections API पर आधारित है। ये Collection किसी Data के Bits पर Operations Perform करता है। इसे भी System.Collections Namespace में Define किया गया है।

Generic Collections विभिन्न प्रकार के Standard Data Structures जैसे कि Linked List, Stacks, Queues Dictionaries के लिए Type-Safe Solutions Provide करते हैं। चूंकि ये Generic Collections होते हैं, इसलिए ये किसी भी Type के Data के लिए Type-Compatible होते हैं। इन Collections को System.Collections.Generic Namespace में Define किया गया है।

Concurrent Collections वे Collections हैं जो Multi-Threaded Collections को Support करते हैं। यानी जब हम ऐसे Applications Develop करने होते हैं, जो कि Multi-Threaded होते हैं, तो ऐसे Multi-Threaded Applications में Use किए जाने वाले Collections एक से ज्यादा Users या Processes के बीच Shared तरीके से Access होते हैं। इस प्रकार के Collections, जो कि Multi-Threaded Applications के लिए उपयोगी होते हैं, Multi-Threaded या Concurrent Collections कहलाते हैं।

इनके अलावा System.Collections.ObjectModel Namespace में कई Classes हैं, जो एक Programmer के रूप में हमें नया Custom Generic Collection बनाने से सम्बंधित विभिन्न प्रकार की सुविधाऐं Provide करता है।

विभिन्न प्रकार के Collections का Fundamental यानी आधार Enumerator ही है जो कि IEnumerator IEnumerable नाम के Non-Generic Interfaces व IEnumerator<T> IEnumerable<T> नाम के Generic Interfaces द्वारा Supported हैं।

Enumerator हमें किसी Collection के विभिन्न Items में से एक समय में किसी एक Item को Access करने का एक Standardized तरीका Provide करता है और ऐसा करने के लिए Enumerator किसी Collection के Contents को Enumerate करता है यानी One by One Traverse करता है।

चूंकि हर Collection Generic या Non-Generic IEnumerable Interface को Implement करता ही है, इसलिए किसी भी Collection के किसी भी Element को IEnumerator या IEnumerator<T> Interface के Implemented Methods द्वारा Access किया जा सकता है।

इसलिए बहुत ही मामूली सा Change करने मात्र से एक Collection Cycling के लिए लिखे गए Codes को किसी दूसरे Collection के Elements की Cycling यानी Traversing के लिए उपयोग में लेने हेतु Modify किया जा सकता है और सामान्‍यत: इन Interfaces को Implement करके हम किसी Collection के Elements की Cycling या Traversing के लिए C# के foreach Loop को Define करते हैं, क्योंकि foreach Loop Enumerators का प्रयोग करके ही किसी Collection के विभिन्न Elements की Traversing करने की क्षमता प्राप्त करता है।

Enumerator से ही Related एक Feature Iterator है, जो ऐसी Custom Collection Classes Create करने की Process को सरल बनाता है, जिसके Elements को foreach Looping Construct द्वारा One by One Access करना होता है।

Non-Generic Collections in C#

Non-Generic Collections .NET 1.0 से .NET Framework का हिस्सा रहे हैं, जिन्हें System.Collections Namespace में Define किया गया है। Non-Generic Collections General Purpose Data Structures होते हैं, जो कि object References पर काम करते हैं। लेकिन ये Type-Safe नहीं होते और यही बात इनकी विशेषता भी है और कमी भी।

क्योंकि ये object Reference पर Operate करते हैं, इसलिए समान Collection में Mix Type के Data को Store किया जा सकता है। ये सुविधा उस स्थिति में काफी उपयोगी साबित होती है, जहां हमें Advance में Data को Store करने के लिए Collection Define करना होता है, जबकि हमें इस बात का पता नहीं होता कि उस Collection में किस तरह का Data Store होगा, लेकिन जब हमें पता होता है कि हमें Collection में किस तरह का Data Store करना है, तो हमें उस स्थिति में Non-Generic Collections को ही Use करना चाहिए। क्योंकि Non-Generic Collections Type-Safety Provide करते हैं।

C# StreamWriter | C# StreamReader
IEnumerable and IEnumerator

******

ये पोस्‍ट Useful लगा हो, तो Like कर दीजिए।

C# in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C#.NET in Hindi | Page:908 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Download All Hindi EBooks

सभी हिन्दी EBooks C, C++, Java, C#, ASP.NET, Oracle, Data Structure, VB6, PHP, HTML5, JavaScript, jQuery, WordPress, etc... के DOWNLOAD LINKS प्राप्‍त करें, अपने EMail पर।

Register करके Login करें। इस Popup से छुटकारा पाएें।