स्कॉट चेम्बरलेन (और कई अन्य) के कहे अनुसार , यदि आप अपरिवर्तनीय (यानी केवल पढ़ने के लिए) वस्तुओं को ध्यान में रखते हैं तो टुपल्स सबसे अच्छा काम करते हैं।
, तो दाऊद ने सुझाव दिया की तरह, आप स्ट्रिंग मान द्वारा पूर्णांक संदर्भ लेना चाहते हैं, उदाहरण के लिए, आप एक शब्दकोश
Dictionary<string, int> d = new Dictionary<string, int>();
d.Add("string", 1);
Console.WriteLine(d["string"]);//prints 1
अगर, हालांकि, आप एक में mutably अपने तत्वों को संग्रहीत करना चाहते हैं का उपयोग करना चाहिए
var kvp=new KeyValuePair<int, string>(2, "a");
//kvp.Key=2 and a.Value="a";
kvp.Key = 3;//both key and
kvp.Value = "b";//value are mutable
: सूची, और एक शब्दकोश शैली संदर्भित प्रणाली, तो आपका सर्वश्रेष्ठ दांव (यानी केवल वास्तविक समाधान अभी) का उपयोग किया जाएगा KeyValuePair है, जो अनिवार्य है std :: सी # के लिए जोड़ी का उपयोग नहीं करना चाहते हैं
बेशक, यह स्टैकेबल है, इसलिए यदि आपको एक बड़ा टुपल चाहिए (जैसे कि आपको 4 एल की आवश्यकता है ements) आप बस इसे ढेर। दी इस बदसूरत वास्तव में तेजी से हो जाता है:
var quad=new KeyValuePair<KeyValuePair<int,string>, KeyValuePair<int,string>>
(new KeyValuePair<int,string>(3,"a"),
new KeyValuePair<int,string>(4,"b"));
//quad.Key.Key=3
तो जाहिर है, अगर आप ऐसा करने के लिए गए थे, तो आप शायद यह भी एक सहायक समारोह परिभाषित करना चाहिए।
मेरी सलाह यह है कि यदि आपके ट्यूपल में 2 से अधिक तत्व होते हैं, तो अपनी कक्षा को परिभाषित करें। आप की तरह बयान का उपयोग कर एक typedef-esque इस्तेमाल कर सकते हैं:
using quad = KeyValuePair<KeyValuePair<int,string>, KeyValuePair<int,string>>;
लेकिन वह अपने instantiations आसान नहीं पड़ता है।यदि आप 2 से अधिक तत्वों के tuples के साथ काम करते समय उपयोगकर्ता परिभाषित वर्ग के साथ जाते हैं तो आप टेम्पलेट पैरामीटर और अधिक समय में गैर-बॉयलरप्लेट कोड पर अधिक समय व्यतीत करेंगे
क्या आप वाकई एक सूची चाहते हैं और एक शब्दकोश नहीं चाहते हैं? आपको शायद अपनी वास्तविक समस्या पर कुछ और विवरण देना चाहिए, ताकि यह स्पष्ट हो कि आप इस तरह से क्यों जा रहे हैं। –
आप किस सूची के लिए उपयोग करना चाहते हैं? – Crisfole
मुझे एक शब्दकोश नहीं चाहिए। मैं एक साधारण उदाहरण का उपयोग करने की कोशिश कर रहा था ... मैं दो स्ट्रिंग्स का उपयोग करूँगा जो मैं एएसपी.नेट एमवीसी 'कंट्रोलर के माध्यम से जेएसओएन प्रारूप में वापस आऊंगा। जेसन' – Darcy