2011-03-03 19 views
24

के लिए बिना किसी ऑब्जेक्ट से सभी कुंजी (केवल कुंजी) प्राप्त करने के लिए कैसे करें यह देखने के लिए कि क्या हमारे पास प्रत्येक लूप के बिना सरणी में सभी चाबियाँ वापस करने का कोई तरीका है (इसके लिए कोई बाधा नहीं है मुझे प्रत्येक पाश मैं सिर्फ देख रहा हूँ क्या कोई अन्य रास्ता नहीं है) के लिए अग्रिमप्रत्येक लूप

+2

संबंधित देखें [कैसे-से-प्राप्त-सूची-की-कुंजी-इन-डिक्शनरी-सी-तेज] (http://stackoverflow.com/questions/1276763/how-to-get-the-list -of-key-in-dictionary-c-sharp? rq = 1) – nawfal

उत्तर

55

में

धन्यवाद का उपयोग करने की कुंजी या मान चाहते हैं कि क्या मैं अपने शब्दों से कुछ नहीं कर रहा हूँ। किसी भी तरह से, यह बहुत सरल है। Keys या Values शब्दकोश की संपत्ति और ToArray एक्सटेंशन विधि का उपयोग करें।

var arrayOfAllKeys = yourDictionary.Keys.ToArray(); 

var arrayOfAllValues = yourDictionary.Values.ToArray(); 
+0

hm ... यह मेरे लिए काम नहीं करता है - System.Collections.Generic.Dictionary .KeyCollection 'में परिभाषा नहीं है 'ToArray' के लिए और 'SystemACollections.Generic.Dictionary .KeyCollection' के पहले तर्क को स्वीकार करने के लिए 'ToArray' कोई एक्सटेंशन विधि नहीं मिल सकती है (क्या आप निर्देश का उपयोग कर रहे हैं या एक असेंबली संदर्भ?) –

+5

@Chiz: 'ToArray' एक LINQ एक्सटेंशन विधि है, इसलिए आपको अपने कोड के शीर्ष पर' System.Linq; 'निर्देश का उपयोग करने की आवश्यकता होगी। – LukeH

1
string[] myKeys; 
myKeys = myDictionary.Keys.ToArray(); 

untested है, लेकिन मैं नहीं दिख रहा है यही कारण है कि यह काम करेगा।

+0

यह कोड: 'var arrayOfAllKeys = yourDictionary.Keys.ToArray(); 'ल्यूकएच द्वारा पोस्ट किया गया बेहतर है, क्योंकि यह कोड कम और अधिक समझ में आता है। और कोड के तहत सुलभ मूल्य: 'arrayOfAllKeys। [0]। ToString();' धन्यवाद। –

3

आप चाबियाँ या मान चाहते हैं?

कुंजी आप इस तरह प्राप्त कर सकते हैं:

dictionary.Keys.ToArray(); 

मूल्यों आप इस तरह प्राप्त कर सकते हैं;

dictionary.Values.ToArray(); 

यह ToArray विधि System.Linq.Enumerable से है।

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