2011-10-20 11 views
5

में मूल्य से कुंजी पाने के लिए मैं कुंजी और मूल्यों के साथ hashtable है और मेरे कोड में मैं बार-बार दोहराना नीचे की तरह मूल्यों के माध्यम से Hashtable हूँ:कैसे हैश तालिका

foreach (Object clientObject in ClientList.Values) 
{ 
    // code to perform operation based on value 
    ...... 
} 

ClientList कहाँ hashtable है। अब मैं अपने कोड में हैशटेबल से perticualar मान की कुंजी प्राप्त करना चाहता हूं। क्या यह हासिल करने का कोई तरीका है?

धन्यवाद

उत्तर

5

आप इस तरह से तालिका के माध्यम से पुनरावृति करने के लिए है:

 Hashtable clientList = new Hashtable(); 

     foreach (DictionaryEntry dictionaryEntry in clientList) 
     { 
      // work with value. 
      Debug.Print(dictionaryEntry.Value.ToString()); 

      // work with key. 
      Debug.Print(dictionaryEntry.Key.ToString()); 
     } 
+0

धन्यवाद, मुझे लगता है कि आपकी समस्या को हल करने के लिए पुनरावृत्ति का तरीका बेहतर है। –

1

इसकी संभव नहीं मान का उपयोग करके कुंजी प्राप्त करने के लिए।

कारणों में से एक कुंजी अद्वितीय है और हैशटेबल में मूल्य अद्वितीय नहीं है।

आप मूल्य पढ़ने के लिए @ फिशरमेन मार्ग का उपयोग कर सकते हैं।

3

आप (.NET> = 3.5) एक निश्चित मूल्य है keys की सूची, LINQ का उपयोग कर चाहते हैं

object searchedValue = something; 

IEnumerable<object> keys = ClientList.Cast<DictionaryEntry>().Where(p => ClientList.Values == searchedValue).Select(p => p.Key); 

यह शायद नहीं है कि तुम क्या चाहता था, लेकिन यह आप क्या पूछा है

(कोड का अर्थ है: ClientList के सभी तत्वों को लें (प्रत्येक तत्व कुंजी और मान का "टुपल" है) और उस खोज को खोजें जिसमें मूल्य खोजे गए मान के बराबर है। उन की चाबियाँ लें तत्व

+0

धन्यवाद। हम आपके कोड की तरह लिनक का उपयोग करके कुंजी प्राप्त कर सकते हैं। लेकिन बेहतर है कि फिशरमेन द्वारा उल्लिखित तरीके से मैं हैशटेबल को बेहतर करता हूं। –

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