2011-02-03 17 views
16

से प्राप्त मूल्य मैं स्ट्रिंग कुंजी से शब्दकोश है मैं कुंजी इसी Linqकुंजी LINQ का उपयोग कर

+3

और यदि आपके पास कुंजी है, तो क्यों दुनिया में आप मूल्य प्राप्त करने के लिए LINQ का उपयोग करना चाहते हैं? क्यों नहीं 'var value = myDictionary ["myKey"]; '? –

+0

शब्दकोश परीक्षण = नया शब्दकोश (); – PramodChoudhari

+5

प्रश्न अभी भी कोई समझ नहीं आता है। लिंकक को कभी भी ध्यान न दें, बस वर्णन करें कि आपके पास पहले से क्या है और आप क्या परिणाम चाहते हैं। सोचने की गलती न करें कि आपको किसी निश्चित उपकरण या पैटर्न का उपयोग करने की आवश्यकता नहीं है जब यह मामला न हो। –

उत्तर

42

आप LINQ का उपयोग करके किसी शब्दकोश से मूल्य क्यों प्राप्त करना चाहते हैं? तुम बस का उपयोग कर लाभ प्राप्त कर सकते हैं:

int value = dictionary[key]; 

आप Single इस्तेमाल कर सकते हैं, लेकिन यह पूरी तरह से व्यर्थ और अधिक कोड है:

var keyValuePair = dictionary.Single(x => x.Key == key); 
int value = keyValuePair.Value; 
+2

मैं सहमत हूं। इसके लिए LINQ का उपयोग ओ (एन) के लिए ओ (1) प्रदर्शन फेंकता है। पूरी तरह से व्यर्थ। – Enigmativity

+8

मुझे भयानक भावना क्यों मिलती है कि आपके लिंक उदाहरण ने इसे कहीं कुछ उत्पादन कोड में बनाया है? –

+1

@ त्वरित जो स्मिथ - मुझे पता है। मुझे लगता है कि मैं थोड़ा अंदर मर गया हूँ। – GenericTypeTea

12

का उपयोग करने का मूल्य प्राप्त करना चाहते हैं क्यों कुछ है कि में बनाया गया है के लिए Linq का उपयोग करें?

var val = myDict[key]; 

उपयोग Linq जहां यह भावना (क्वेरी करने संग्रह) बनाता है, कुछ है कि पहले से ही अच्छी तरह से Dictionary वर्गों द्वारा नियंत्रित के लिए नहीं।

+0

तो LINQ के साथ क्या गलत है। बड़ा सौदा अगर यह लंबे वाक्यविन्यास है, तो अगली बार अधिक या diff LINQ के साथ विस्तार करना और पढ़ने में आसान है। निश्चित रूप से [] के साथ कुंजी द्वारा एक्सेस करना कम से कम वर्ण है लेकिन इस मामले में कौन परवाह करता है। तो LINQ आपके द्वारा कहने वाले शब्दकोश की धीमी गति से पूछताछ कर रहा है? किसी ने साबित करने के लिए कोई परीक्षण किया है? – PositiveGuy

+0

@CoffeeAddict - मेरा मुद्दा यह है कि LINQ सबकुछ का उत्तर नहीं है। इंडेक्सर्स की तरह कुछ चीजें भाषा की विशेषताएं हैं जिनका उपयोग LINQ का उपयोग करके उनके आसपास जाने के बजाए किया जाना चाहिए। – Oded

+0

मैं मानता हूं कि यह हमेशा उत्तर नहीं है लेकिन यह बहुत कम के लिए बहुत उपयोगी है। मुझे इंडेक्सर्स और LINQ – PositiveGuy

0

रिटर्न इस विशेष उदाहरण में स्ट्रिंग मान।

Disctionary<int, string> CustomValues = new Dictionary<int, string>(); 
    CustomValues[int]; //CustomValues[key]; 
संबंधित मुद्दे