2011-04-26 11 views
28

मैं लुकअप <> मैंने .oLookup() विधि के माध्यम से बनाई गई कुंजियों का संग्रह कैसे प्राप्त करूं?लुकअप से कुंजियां प्राप्त करना

मेरे पास एक लुकअप है जो एक कस्टम क्लास के उदाहरणों के समूहों के लिए मूल्यवान मानता है। मुझे लुकअप वाली सभी int कुंजीों का संग्रह चाहिए। ऐसा करने का कोई तरीका, या क्या मुझे उन्हें अलग से सहेजना और सहेजना है?

उत्तर

38

आप कुंजी-आइटम समूहों के सेट के माध्यम से पुन: प्रयास कर सकते हैं और कुंजी को पढ़ सकते हैं, उदा।

var keys = myLookup.Select(g => g.Key).ToList(); 
+3

किसी भी सिद्धांत क्यों के रूप में '' Lookup' Dictionary' विपरीत 'Keys' विधि शामिल नहीं है? – NetMage

+0

मुझे नहीं पता - शायद सबसे अच्छा अनुमान हो सकता है क्योंकि लुकअप LINQ द्वारा प्रदान किया जाता है और आप इस तरह की चाबियाँ निकालने के लिए LINQ का उपयोग कर सकते हैं? यहां .NET संदर्भ स्रोत से वर्तमान कार्यान्वयन हैं: [लुकअप] (https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,cb695d4a973ef608), [शब्दकोश] (https: // referencesource.microsoft.com/#mscorlib/system/collections/generic/dictionary.cs,d3599058f8d79be0)। उनका आंतरिक भंडारण मोटे तौर पर वही दिखता है। डिक्शनरी की अपनी कुंजीकोलेक्शन क्लास है, जो लुकअप के लिए अनुकूलित करने के लिए काफी आसान होगी, लेकिन यह सिर्फ संगत नहीं है। – Rup

8

एक तेज़ तरीका:

var myKeys = myLookup.Select(l=>l.Key);