C# ToDictionary विधि

C Todictionary Vidhi



C# में ToDictionary फ़ंक्शन एक LINQ एक्सटेंशन फ़ंक्शन है जो आपको डेटा संग्रह को एक शब्दकोश में बदलने में सक्षम बनाता है जो इकाइयों को अलग-अलग कुंजियों और संबंधित मानों में मैप करने का एक स्पष्ट और व्यावहारिक तरीका प्रदान करता है। इसमें दो तर्क, दो प्रतिनिधि या लैम्ब्डा अभिव्यक्ति की आवश्यकता होती है, एक कुंजी चुनने के लिए और एक अतिरिक्त संग्रह में प्रत्येक ऑब्जेक्ट के लिए मूल्य चुनने के लिए। इस आलेख में, हम ToDictionary फ़ंक्शन के उपयोग को प्रदर्शित करने के लिए कुछ C# कोड उदाहरणों का उपयोग करेंगे।

वाक्य - विन्यास:

आइए C# ToDictionary फ़ंक्शन के निम्नलिखित सिंटैक्स में प्रदान किए गए प्रत्येक घटक को एक-एक करके तोड़ें और समझें:



हुक्म था = संग्रह। ToDictionary ( कुंजी चयनकर्ता , तत्व चयनकर्ता ) ;
  • परिणामी 'तानाशाही' शब्दकोश की प्रकार श्रेणी को परिभाषित करने के लिए 'var' कीवर्ड को यहां हटा दिया गया है। ज्यादातर मामलों में, यह शब्दकोश है जहां K कुंजी का प्रकार है और V शब्दकोश मान का प्रकार श्रेणी है।
  • 'संग्रह' तत्व उस स्रोत संग्रह का प्रतिनिधित्व करता है जिसे आप 'तानाशाही' शब्दकोश में परिवर्तित करना चाहते हैं। यह कोई भी वर्ग हो सकता है जो IEnumerable इंटरफ़ेस को लागू करता है जैसे कि सूची, सरणी या क्वेरी परिणाम।
  • 'कीसेलेक्टर' कीवर्ड एक प्रतिनिधि या लैम्ब्डा अभिव्यक्ति है जो निर्दिष्ट करता है कि संग्रह में प्रत्येक आइटम से कुंजी कैसे निकाली जाए। यह संग्रह से एक तत्व को तर्क के रूप में प्राप्त करता है और उस आइटम के लिए मुख्य मान वापस देता है। संग्रह में प्रत्येक आइटम के लिए कुंजी अद्वितीय होनी चाहिए, क्योंकि शब्दकोशों में डुप्लिकेट कुंजियाँ नहीं हो सकतीं।
  • 'एलिमेंटसेलेक्टर' कीवर्ड एक प्रतिनिधि या लैम्ब्डा अभिव्यक्ति को संदर्भित करता है जो निर्दिष्ट करता है कि संग्रह में प्रत्येक आइटम से मूल्य कैसे निकाला जाए। यह संग्रह का एक तत्व तर्क के रूप में भी प्राप्त करता है और उस आइटम के लिए मूल्य उत्पन्न करता है।

ToDictionary फ़ंक्शन को निष्पादित करने के बाद, आपके पास एक नया शब्दकोश ऑब्जेक्ट होगा जहां संग्रह से प्रत्येक आइटम को कुंजी-मूल्य जोड़ी के रूप में दर्शाया जाएगा।







उदाहरण 1:

आइए एक कोड उदाहरण की सहायता से C# में ToDictionary फ़ंक्शन के उपयोग को प्रदर्शित करके इस गाइड पर एक नई शुरुआत करें। आइए इसे चरण दर चरण देखें।



कोड आयात किए जा रहे आवश्यक नामस्थानों से शुरू होता है: सिस्टम, System.Collections.Generic, और System.Linq। ये नामस्थान संग्रह और LINQ के साथ काम करने के लिए आवश्यक कक्षाएं और विस्तार विधियां प्रदान करते हैं। 'डमी' वर्ग को परिभाषित किया गया है जिसमें इस C# प्रोग्राम की 'मुख्य' विधि शामिल है।



'मेन' विधि के अंदर, 'एल' नामक एक सूची बनाई जाती है। इस सूची में तीन स्ट्रिंग तत्व हैं जो उपयोगकर्ता की पसंद के विभिन्न इत्रों के नाम दर्शाते हैं। ToDictionary पद्धति को 'L' सूची में कहा जाता है। यह सूची को शब्दकोश में बदल देता है। सूची में प्रत्येक स्ट्रिंग तत्व परिणामी शब्दकोश में कुंजी और मान दोनों के रूप में कार्य करता है।





शब्दकोश StringComparer.OrdinalIgnoreCase पैरामीटर का उपयोग करके केस-असंवेदनशील कुंजी तुलना के साथ बनाया गया है, जिसका उपयोग मुख्य रूप से कुंजियों के अस्तित्व की जांच करते समय केस-असंवेदनशील तुलना निर्दिष्ट करने के लिए किया जाता है। एक 'if' स्टेटमेंट इसकी जांच करता है कि क्या शब्दकोष में 'बॉम्बशेल' कुंजी है, जबकि इसके मामले को नजरअंदाज कर दिया गया है। यदि कुंजी मिल जाती है, तो 'if' अनुभाग के भीतर कोड स्निपेट संसाधित किया जाएगा। 'if' ब्लॉक के अंदर, कंसोल.राइटलाइन ('बॉम्बशेल मौजूद है') स्टेटमेंट निष्पादित होता है जो कंसोल पर 'बॉम्बशेल मौजूद है' संदेश प्रिंट करता है।

सिस्टम का उपयोग करना ;

सिस्टम का उपयोग करना। संग्रह . सामान्य ;

सिस्टम का उपयोग करना। लिंक ;

क्लास डमी

{

स्थिर खालीपन मुख्य ( )

{

सूची < डोरी > एल = नई सूची < डोरी > ( ) { 'ब्लैकओपियम' , 'बमबारी' , 'गुच्चीफ्लोरा' } ;

इत्र था = एल ToDictionary ( एक्स => एक्स , एक्स => सत्य , स्ट्रिंग तुलनाकर्ता। ऑर्डिनल इग्नोरकेस ) ;

अगर ( इत्र। सम्‍मिलितकुंजी ( 'बमबारी' ) )

{

सांत्वना देना। पंक्ति लिखो ( 'बम का गोला मौजूद है' ) ;

}

}

}

चूंकि शब्दकोश केस-असंवेदनशील तुलना के साथ बनाया गया है, इसलिए 'बॉम्बशेल' कुंजी शब्दकोश में वास्तविक 'बॉम्बशेल' कुंजी से मेल खाती है। परिणामस्वरूप, 'बॉम्बशेल मौजूद है' संदेश कंसोल पर मुद्रित होता है जैसा कि निम्नलिखित संलग्न आउटपुट छवि में प्रदर्शित होता है:



उदाहरण 2:

पिछले कोड उदाहरण में, हमने दिखाया कि कैसे एक साधारण संग्रह को ToDictionary फ़ंक्शन के माध्यम से एक शब्दकोश में परिवर्तित किया जा सकता है। अब, हम C# ToDictionary फ़ंक्शन उपयोगों के प्रदर्शन के लिए C# के थोड़ा उन्नत कोड उदाहरण की ओर बढ़ेंगे। आइए कोड को पंक्ति दर पंक्ति तोड़ें।

यह चित्रण कोड स्निपेट समान अनिवार्य नामस्थान लाकर शुरू होता है: सिस्टम, System.Collections.Generic, और System.Linq। ये नामस्थान इस कोड उदाहरण के लिए संग्रह और LINQ के साथ काम करने के लिए आवश्यक कक्षाएं और विस्तार विधियां प्रदान करते हैं। 'डमी' वर्ग को परिभाषित किया गया है जो एक प्रवेश बिंदु है।

C# भाषा के “Main” मेथड के अंदर “L” नाम की एक लिस्ट बनती है। इस सूची में 'डेटा' वर्ग की तीन वस्तुएं शामिल हैं जो विभिन्न कॉस्मेटिक उत्पादों को उनकी कीमतों और ब्रांडों के साथ दर्शाती हैं। प्रत्येक डेटा ऑब्जेक्ट को ऑब्जेक्ट इनिशियलाइज़र सिंटैक्स का उपयोग करके प्रारंभ किया जाता है। प्रत्येक वस्तु की 'कीमत' और 'ब्रांड' गुण विशिष्ट मानों के साथ निर्धारित किए जाते हैं।

यहां ToDictionary विधि आती है। इसे यहां 'एल' सूची में कहा गया है। यह सूची को एक शब्दकोश में परिवर्तित करता है जहां 'मूल्य' संपत्ति को कुंजी के रूप में उपयोग किया जाता है और 'ब्रांड' संपत्ति को मूल्य के रूप में उपयोग किया जाता है। परिणामी शब्दकोश को 'Dic' वेरिएबल को सौंपा गया है जैसा कि निम्नलिखित दिए गए कोड स्निपेट में बताया गया है। 'Dic' शब्दकोश में कुंजी-मूल्य जोड़े पर कॉल करने के लिए एक 'foreach' लूप को बंद कर दिया गया है।

लूप के अंदर, प्रत्येक जोड़ी की कुंजी और मान को KeyValuePair संरचना के 'कुंजी' और 'मान' गुणों का उपयोग करके एक्सेस किया जाता है। कंसोल.राइटलाइन फ़ंक्शन स्टेटमेंट प्रत्येक कुंजी-मूल्य जोड़ी को कंसोल पर प्रिंट करता है। कीमत और ब्रांड की जानकारी अलग-अलग प्रदर्शित करने के लिए स्ट्रिंग इंटरपोलेशन का उपयोग करके आउटपुट को स्वरूपित किया जाता है।

यहां, 'डेटा' वर्ग को दो गुणों के साथ परिभाषित किया गया है: 'मूल्य' (एक पूर्णांक जो कॉस्मेटिक उत्पाद की कीमत का प्रतिनिधित्व करता है) और 'ब्रांड' (एक स्ट्रिंग जो किसी उत्पाद के ब्रांड नाम का प्रतिनिधित्व करता है)।

सिस्टम का उपयोग करना ;

सिस्टम का उपयोग करना। संग्रह . सामान्य ;

सिस्टम का उपयोग करना। लिंक ;

क्लास डमी

{

स्थिर खालीपन मुख्य ( )

{

सूची < डेटा > एल = नई सूची < डेटा > ( )

{

नए आंकड़े { कीमत = 13000 , ब्रांड = 'हुडा ब्यूटी' } ,

नए आंकड़े { कीमत = 15000 , ब्रांड = 'चार्लोट टेलबरी' } ,

नए आंकड़े { कीमत = 11000 , ब्रांड = 'नार्स' }

} ;

शब्दकोष < int यहाँ , डोरी > दिसम्बर = एल ToDictionary ( पी => पी। कीमत , पी => पी। ब्रांड ) ;

प्रत्येक के लिए ( डिक में वर वी )

{

सांत्वना देना। पंक्ति लिखो ( $ 'कीमत: {v.Key}, ब्रांड: {v.Value}' ) ;

}

}

}

क्लास डेटा

{

जनता int यहाँ कीमत { पाना ; तय करना ; }

सार्वजनिक स्ट्रिंग ब्रांड { पाना ; तय करना ; }

}

जब कोड निष्पादित होता है, तो यह डेटा ऑब्जेक्ट्स की एक सूची बनाता है, सूची को ToDictionary विधि का उपयोग करके एक शब्दकोश में परिवर्तित करता है, और फिर 'foreach' लूप का उपयोग करके शब्दकोश के कुंजी-मूल्य जोड़े प्रदर्शित करता है।

इस कोड उदाहरण का आउटपुट निम्नलिखित में दिया गया है। यह कॉस्मेटिक उत्पादों की कीमतों और ब्रांडों को दिखाता है जो विशिष्ट गुणों के आधार पर शब्दकोश में संग्रहीत होते हैं, जो कुंजी-मूल्य जोड़े में डेटा को व्यवस्थित करने और उस तक पहुंचने का एक सुविधाजनक तरीका प्रदान करते हैं। पिछले कोड का आउटपुट शब्दकोश के लिए तीन रिकॉर्ड दिखाता है:

निष्कर्ष

इस C# गाइड ने कुछ बुनियादी और सटीक कोड चित्रण के माध्यम से C# ToDictionary पद्धति के उपयोग का प्रदर्शन किया। कुंजी-मूल्य जोड़े का वर्णन करने के लिए एक स्पष्ट और अभिव्यंजक तंत्र की पेशकश करके, ToDictionary पद्धति एक संग्रह को शब्दकोश में बदलना आसान बनाती है। यह डेटा में हेरफेर और परिवर्तन करने के लिए एक मजबूत C# उपयोगिता है।