मेरे पास एक बड़ी स्थैतिक सूची है जो मूल रूप से एक लुकअप टेबल है, इसलिए मैं तालिका में तालिका शुरू करता हूं।कस्टम प्रकारों पर संग्रह प्रारंभकर्ता वाक्यविन्यास का उपयोग करना?
private class MyClass
{
private class LookupItem
{
public int Param1 { get; set; }
public int Param2 { get; set; }
public float Param2 { get; set; }
public float Param4 { get; set; }
}
private static List<LookupItem> _lookupTable = new List<LookupItem>()
{
new LookupItem() { Param1 = 1, Param2 = 2, Param3 = 3 Param4 = 4 },
new LookupItem() { Param1 = 5, Param2 = 6, Param3 = 7 Param4 = 8 },
//etc
}
}
असली LookupItem
कई और अधिक गुण है, तो मैं एक निर्माता जोड़ा एक अधिक कॉम्पैक्ट initialisation प्रारूप के लिए अनुमति देने के लिए:
private class MyClass
{
private class LookupItem
{
public int Param1 { get; set; }
public int Param2 { get; set; }
public float Param2 { get; set; }
public float Param4 { get; set; }
public LookupItem(int param1, int param2, float param3, float param4)
{
Param1 = param1;
Param2 = param2;
Param3 = param3;
Param4 = param4;
}
}
private static List<LookupItem> _lookupTable = new List<LookupItem>()
{
new LookupItem(1, 2, 3, 4),
new LookupItem(5, 6, 7, 8),
//etc
}
}
क्या मैं सच में करना चाहते हैं प्रारूप initialiser संग्रह का उपयोग करें ऑब्जेक्ट के लिए ही मैं प्रत्येक पंक्ति पर new LookupItem()
से छुटकारा पा सकता हूं। उदाहरण:
private static List<LookupItem> _lookupTable = new List<LookupItem>()
{
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
//etc
}
क्या यह संभव है? मुझे लगता है कि ऐसा इसलिए है क्योंकि KeyValuePair
Dictionary<>
इस तरह से शुरू किया जा सकता है।
MSDN स्टेट्स:
संग्रह initializers जब आप एक संग्रह वर्ग कि IEnumerable लागू करता प्रारंभ आप एक या अधिक तत्व intializers स्पष्ट करने देते हैं। तत्व प्रारंभकर्ता एक साधारण मान, अभिव्यक्ति या ऑब्जेक्ट प्रारंभकर्ता हो सकते हैं। संग्रह प्रारंभकर्ता का उपयोग करके आपको अपने स्रोत कोड में कक्षा की जोड़ें विधि में एकाधिक कॉल निर्दिष्ट करने की आवश्यकता नहीं है; संकलक कॉल जोड़ता है।
क्या इसका मतलब है कि मुझे को LookupItem
कक्षा पर लागू करने और प्रत्येक पैरामीटर को वापस करने की आवश्यकता है? मेरी कक्षा हालांकि संग्रह कक्षा नहीं है।
शानदार। आपका बहुत बहुत धन्यवाद। – GazTheDestroyer