2013-02-14 51 views
6

में कोई कुंजी है तो सवाल बहुत आत्म-व्याख्यात्मक है; मैं यह जांचने में सक्षम होना चाहता हूं कि एक सहयोगी सरणी में एक मूल्य है जो मैं वास्तव में सम्मिलित करने से पहले (संभावित रूप से) सम्मिलित करता हूं। dict.keys के माध्यम से खोज किए बिना ऐसा करने का कोई आसान तरीका है? शायद if (dict.contains(val)) ... की तरह कुछ?परीक्षण यदि किसी एसोसिएटिव सरणी में डी

उत्तर

7

परीक्षण करने के लिए अगर एक कुंजी एक साहचर्य सरणी में है, in ऑपरेटर का उपयोग करें: यदि एक मूल्य मौजूद

string[int] aa; 

string* ps = 100 in aa; 

if(ps) 
{ 
    // 100 is a key in aa, ps is a pointer to the corresponding value 
} 
else 
{ 
    // 100 is not a key in aa 
} 

परीक्षण करने के लिए, आप aa.values के माध्यम से खोज करने के लिए होगा।

+0

यह ध्यान रखें कि एक सूचक एक सशर्त में गलत पर मूल्यांकन करेंगे योग्य है यदि और केवल यदि सूचक 'null' –

+3

मुझे लगता है कि कोड लिखने के लिए हमेशा की तरह' है अगर (ऑटो वी = आ में महत्वपूर्ण है) {एफएन (* वी); } else {...} ' – BCS

+0

धन्यवाद yoooou! सी: –

1
if (!dict.get(key, null)) 
    dict[key] = val; 
+0

काम नहीं करता है क्योंकि 'शून्य' 'dict' में वैध मान हो सकता है; आप 'dict [key] = null; 'कह सकते हैं, फिर' dict' में कुंजी 'सत्य' वापस आ जाएगी। – beerboy

+0

@beeryboy यह स्थिति पर निर्भर करता है कि आप इसका उपयोग कर सकते हैं या नहीं – fwend