2008-12-29 14 views
23

[string]Dictionary के सूचकांक क्या करता है जब कुंजी शब्दकोश में मौजूद नहीं होती है? मैं सी # के लिए नया हूं और मुझे जवाडॉक्स के रूप में अच्छा संदर्भ नहीं मिल रहा है।सी #: शब्दकोश के [स्ट्रिंग] सूचकांक वापस क्या करता है?

क्या मुझे null मिलती है, या क्या मुझे अपवाद मिलता है?

+11

जब आप इसे आजमाते हैं तो क्या होता है? – AnthonyWJones

+3

मुझे लगता है कि कोशिश करने के लिए एक अच्छी बात होगी। – jjnguy

+0

वर्तनी सहायता के लिए धन्यवाद ब्लेयर – jjnguy

उत्तर

25

यदि आपका मतलब Dictionary<string,SomeType> का सूचकांक है, तो आपको एक अपवाद (KeyNotFoundException) देखना चाहिए। आप इसे त्रुटि के लिए नहीं करना चाहते हैं:

SomeType value; 
if(dict.TryGetValue(key, out value)) { 
    // key existed; value is set 
} else { 
    // key not found; value is default(SomeType) 
} 
+0

आउट चीज का उपयोग करने के उदाहरण के लिए धन्यवाद ... हे। – jjnguy

+0

TryGetValue और TryParse उदाहरण शायद सबसे आम "आउट" उपयोग-मामले हैं जिन्हें आप दिन-प्रति-दिन कोड में देखेंगे। –

+0

जब मैं उनके बारे में पढ़ रहा था तो मैं वास्तव में एक महान उपयोग नहीं देख सका। यह सिर्फ दो वापसी मूल्य हैक की तरह लगता है। – jjnguy

14

जैसा कि पहले, documentation पता लगाने का तरीका है।

अपवाद के तहत:

 
KeyNotFoundException 
The property is retrieved and key does not exist in the collection 

(मैं तुम्हारा मतलब Dictionary<TKey,TValue>, वैसे यह सोचते हैं रहा हूँ।)

ध्यान दें कि यह non-generic Hashtable behaviour से अलग है।

जब आप नहीं जानते कि यह मौजूद है या नहीं, तो कुंजी की कीमत प्राप्त करने का प्रयास करने के लिए, TryGetValue का उपयोग करें।

+0

धन्यवाद, .NET प्रलेखन अभी भी मेरे लिए आवश्यक जानकारी ढूंढने और ढूंढने के लिए कठिन है। – jjnguy

+1

यह अधिकतर अच्छा है (विशेष रूप से ऑफ़लाइन संस्करण, आईएमओ - इंडेक्स का उपयोग करें) लेकिन आपको यह जानने की ज़रूरत है कि इंडेक्सर दस्तावेज़ों को ढूंढने के लिए आप आमतौर पर आइटम प्रॉपर्टी देखते हैं। –

+0

इंडेक्स ... ठीक है, मुझे यह याद होगा। मैं जावा से dict.get (कुंजी) पसंद करते हैं। ओह ठीक है ... मैं एक प्रशंसक लड़का हूँ। – jjnguy

3

वैकल्पिक रूप से TryGetValue का उपयोग करने के लिए, आपको पहले जांच कर सकते हैं कुंजी इस प्रकार की आवश्यकता को समाप्त जानने यदि आप वास्तव में की आवश्यकता होगी करने से पहले एक मूल्य घोषित करने के लिए dict.ContainsKey(key) का उपयोग कर मौजूद है यह।

4

मुझे लगता है कि आप अगर शब्दकोश कुंजी है या नहीं एक

dict.ContainsKey(someKey) 

जाँच करने के लिए कोशिश कर सकते हैं।

धन्यवाद

संबंधित मुद्दे