मुझे List<String, Int32, Int32>
जैसा कुछ चाहिए। सूची केवल एक समय में एक प्रकार का समर्थन करती है, और एक समय में केवल दो शब्द का समर्थन करती है। क्या ऊपर की तरह कुछ करने का एक साफ तरीका है (एक बहुआयामी जेनेरिक सूची/संग्रह)?क्या सूची <स्ट्रिंग, इंट 32, इंट 32> (बहुआयामी जेनेरिक सूची) जैसे कुछ हैं
उत्तर
सबसे अच्छा तरीका है कि आप इस टिल सी # 3.0 ऐसा नहीं कर सकते, एक वर्ग
public class Container
{
public int int1 { get; set; }
public int int2 { get; set; }
public string string1 { get; set; }
}
कोड जहां आप की जरूरत यह
List<Container> myContainer = new List<Container>();
+1 क्योंकि इसे .Net4 tuple की आवश्यकता नहीं है और इसे कक्षा के साथ छोटे पैमाने पर कार्यान्वित किया जा सकता है, लेकिन -1 क्योंकि आपको कक्षा में सार्वजनिक क्षेत्रों से बचना चाहिए। एक संपत्ति के रूप में लागू करें और सरल '{प्राप्त करें; सेट;} 'इसके बजाए। –
आपको शायद बराबर और GetHashCode को ओवरराइड करने की आवश्यकता होगी –
प्रकार कंटेनर एक अपरिवर्तनीय संरचना होना चाहिए क्योंकि यह केवल मानों का प्रतिनिधित्व करता है। –
.NET 4 में आप List<Tuple<String, Int32, Int32>>
का उपयोग कर सकते हैं।
दुर्भाग्य से मैं .NET 3.5 पर हूं, लेकिन मैं इसे 4.0 के लिए दिमाग में रखूंगा! – Alex
खैर में तो यानी इसके लिए एक कंटेनर बनाने के लिए है, यदि आप अन्य उत्तरों में उल्लिखित सी # 4.0 का उपयोग कर सकते हैं तो टुपल्स का उपयोग करें।
हालांकि सी # 3.0 में - Immutable structure
बनाएं और संरचना के भीतर सभी प्रकार के बीमा लपेटें और संरचना प्रकार को अपनी सूची में जेनेरिक प्रकार तर्क के रूप में पास करें।
public struct Container
{
public string String1 { get; private set; }
public int Int1 { get; private set; }
public int Int2 { get; private set; }
public Container(string string1, int int1, int int2)
: this()
{
this.String1 = string1;
this.Int1 = int1;
this.Int2 = int2;
}
}
//Client code
IList<Container> myList = new List<Container>();
myList.Add(new Container("hello world", 10, 12));
आप उत्सुक हैं क्यों अपरिवर्तनीय structs बना सकते हैं - checkout here।
आपकी टिप्पणी के आधार पर, ऐसा लगता है कि आपको एक स्ट्रिंग कुंजी के साथ एक शब्दकोश में संग्रहीत दो पूर्णांक वाले स्ट्रक्चर की आवश्यकता है।
struct MyStruct
{
int MyFirstInt;
int MySecondInt;
}
...
Dictionary<string, MyStruct> dictionary = ...
यह मानता है कि तार अद्वितीय होने का इरादा रखते हैं। –
Int32 का डुप्लिकेशन दिलचस्प है। तुम क्या करने की कोशिश कर रहे हो? –
मुझे एक स्ट्रिंग के साथ दो अलग-अलग संख्याओं को जोड़ना होगा, जिसका उपयोग डेटा को एक दृश्य में प्रस्तुत करने के लिए किया जाएगा। – Alex
मुझे लगता है कि @ एलेक्स में मेरे जैसे 'जावा' पृष्ठभूमि है। –