मेरे पास एक वर्ग है जिसमें कुछ गुण हैं:
public class PossibleSettingsData
{
public int Value { get; set; }
public string Definition { get; set; }
public object Meaning { get; set; }
}
और मेरे पास इस वर्ग की एक सरणी है और मैं इसे बहु-आयामी सरणी की तरह तुरंत चालू करना चाहता हूं:
var PossibleSettings=new PossibleSettingsData[]
{
{ 5 ,"4800 baud", 4800}, \\It means I want to Value=5 and Definition="4800 baud" and Meaning=4800
{ 6 ,"9600 baud", 9600},
{ 7 ,"19200 baud" ,19200}
};
ऐसा करने के लिए मुझे PossibleSettingsData
कक्षा में क्या परिवर्तन करने होंगे? क्या यह बिल्कुल संभव है? मैंने ऐसा कुछ देखा है जब मैं Dictionary<,>
को पॉप्युलेट करना चाहता हूं तो मुझे लगता है कि शायद मैं यह कर सकता हूं।
2 जवाब
मुझे नहीं लगता कि सटीक सिंटैक्स प्राप्त करना संभव है, लेकिन यदि आप वह करना चाहते हैं जो Dictionary
करता है, तो आपको दूसरे प्रकार को परिभाषित करने की आवश्यकता है:
class PossibleSettingsDataList: IEnumerable<PossibleSettingsData> {
private List<PossibleSettingsData> list = new();
public void Add(int value, string definition, object meaning) {
list.Add(new() {
Value = value, Definition = definition, Meaning = meaning
});
}
public IEnumerator<PossibleSettingsData> GetEnumerator()
=> ((IEnumerable<PossibleSettingsData>)list).GetEnumerator()
IEnumerator IEnumerable.GetEnumerator()
=> ((IEnumerable)list).GetEnumerator();
}
यहाँ महत्वपूर्ण बात Add
विधि और IEnumerable<PossibleSettingsData>
के अनुरूप है। यह आपके द्वारा अपने नेस्टेड {}
में डाली गई 3 चीजों को Add
विधि में पास करने की अनुमति देता है। अधिक जानकारी के लिए, देखें यह.
तब आप कर सकते हैं:
var PossibleSettings=new PossibleSettingsDataList
{
{ 5 ,"4800 baud", 4800},
{ 6 ,"9600 baud", 9600},
{ 7 ,"19200 baud" ,19200}
}.ToArray();
एक कंस्ट्रक्टर जोड़ना:
public class PossibleSettingsData
{
public int Value { get; set; }
public string Definition { get; set; }
public object Meaning { get; set; }
public PossibleSettingsData()
{
}
public PossibleSettingsData(int value, string definition, object meaning)
{
Value = value;
Definition = definition;
Meaning = meaning;
}
}
हम लिख सकते हैं कि:
var PossibleSettings = new PossibleSettingsData[]
{
new PossibleSettingsData(5 ,"4800 baud", 4800),
new PossibleSettingsData(6 ,"9600 baud", 9600),
new PossibleSettingsData(7 ,"19200 baud" ,19200)
};
लेकिन कंस्ट्रक्टर के बिना:
var PossibleSettings = new PossibleSettingsData[]
{
new PossibleSettingsData { Value = 5, Definition = "4800 baud", Meaning = 4800},
new PossibleSettingsData { Value = 6, Definition = "9600 baud", Meaning = 9600},
new PossibleSettingsData { Value = 7, Definition = "19200 baud", Meaning = 19200}
};
सी # 9+ के साथ भी हम लिख सकते हैं, अगर मैं समझ गया (मैं सी # 7.3 का उपयोग करता हूं):
var PossibleSettings = new PossibleSettingsData[]
{
new(5 ,"4800 baud", 4800),
new(6 ,"9600 baud", 9600),
new(7 ,"19200 baud" ,19200)
};
बेशक हम एक विशेष संग्रह वर्ग बना सकते हैं जैसा कि @Sweeper द्वारा उजागर किया गया है।
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।