2010-04-22 6 views
11

आपसरणी कि [ 'नाम'] सी # में का उपयोग कर सरणी accesed किया जा सकता है

array['Name']; 

कर सकते हैं सी # में

के बजाय:

array[0]; 

मुझे पता है तुम में ऐसा कर सकते हैं PHP लेकिन सी # के लिए एक समतुल्य है, हालांकि मैं सोच रहा हूं कि हाईले असंभव है :(

उत्तर

16

इसे Dictionary में सी # । जेनिक्स का उपयोग करके आप वास्तव में किसी भी प्रकार से अनुक्रमित कर सकते हैं। इस तरह:

Dictionary<Person, string> dictionary = new Dictionary<Person, string>(); 
Person myPerson = new Person(); 
dictionary[myPerson] = "Some String"; 
... 
string someString = dictionary[myPerson]; 
Console.WriteLine(someString); 

यह स्पष्ट रूप से प्रिंट करता है, कंसोल के लिए "कुछ स्ट्रिंग"।

यह शब्दकोश की लचीलापन का एक उदाहरण है। आप इसे एक इंडेक्स के रूप में स्ट्रिंग के साथ भी कर सकते हैं, जैसा आपने पूछा था।

+0

हाँ, 'सिस्टम.कोलेक्शन' http://msdn.microsoft.com/en-us/library/system.collections.aspx – xandercoded

+2

@xandercoded पर एक नज़र डालें, आप शायद 'System.Collections.Generic' चाहते हैं। 'System.Collections' .net से गैर-जेनेरिक रूप है। – Kobi

+0

धन्यवाद ........: डी –

2
Dictionary<string, whatyouwanttostorehere> myDic = 
          new Dictionary<string, whatyouwanttostorehere>(); 
myDic.Add("Name", instanceOfWhatIWantToStore); 
myDic["Name"]; 
+0

ty ... अच्छा .... –

+1

जो मुझे खेद है, यह दिखाया नहीं गया पूरी तरह से पहली बार। –

6

सरणी सी # में उस तरह काम नहीं करते हैं, लेकिन आप किसी भी वर्ग के लिए एक इंडेक्सर संपत्ति जोड़ सकते हैं:

class MyClass 
{ 
    public string this[string key] 
    { 
     get { return GetValue(key); } 
     set { SetValue(key, value); } 
    } 
} 

तो फिर तुम बयान के प्रकार लिख सकते हैं तो आप इस के खिलाफ पूछते हैं:

MyClass c = new MyClass(); 
c["Name"] = "Bob"; 

इस प्रकार Dictionary<TKey, TValue>, NameValueCollection पर स्ट्रिंग-आधारित अनुक्रमित पहुंच और समान वर्ग लागू किए गए हैं। आप कई इंडेक्सर्स को भी कार्यान्वित कर सकते हैं, उदाहरण के लिए, इंडेक्स के लिए एक और नाम के लिए एक, आप बस एक अलग पैरामीटर प्रकार के साथ उपरोक्त एक और संपत्ति जोड़ते हैं।

कई निर्मित फ्रेमवर्क वर्गों पहले से ही इन indexers है, जिनमें शामिल हैं:

  • SortedList<TKey, TValue>
  • Dictionary<TKey, TValue>
  • SortedDictionary<TKey, TValue>
  • NameValueCollection
  • Lookup<TKey, TValue> (System.Linq में)

... और अधिक। ये सब कुछ अलग-अलग उद्देश्यों के लिए डिज़ाइन किए गए हैं, इसलिए आप प्रत्येक पर पढ़ना चाहेंगे और देखें कि आपकी आवश्यकता के लिए कौन सा उचित है।

+0

धन्यवाद, laters के लिए अजीब जवाब ....: डी –

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

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