क्या C # में डायनामिक ऐरे बनाने की कोई विधि है?
क्या C # में डायनामिक ऐरे बनाने की कोई विधि है?
जवाबों:
जेनेरिक सूचियों पर एक नज़र डालें ।
dynamic[] msdn.microsoft.com/en-GB/library/dd264736.aspx (गतिशील प्रकारों का सरणी) या ExpandoObject msnn.microsoft.com/ के बारे में पूछ सकता है। en-us / पुस्तकालय / ... मैं इनका उल्लेख नहीं करने के लिए -1 जवाब दे सकता था
एक कोड नमूने के साथ क्रिस और मिगोल के उत्तर पर विस्तार।
एक सरणी का उपयोग करना
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
जेनेरिक सूची का उपयोग करना। हुड के तहत सूची <टी> वर्ग भंडारण के लिए एक सरणी का उपयोग करता है, लेकिन एक फैशन में ऐसा करता है जो इसे कुशलता से बढ़ने की अनुमति देता है।
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
कभी-कभी सादे सरणियों को जेनेरिक सूचियों के लिए पसंद किया जाता है, क्योंकि वे अधिक सुविधाजनक होते हैं (महंगा संगणना के लिए बेहतर प्रदर्शन-उदाहरणीय बीजगणित अनुप्रयोग उदाहरण के लिए, या आर या मैटलैब जैसे सांख्यिकी सॉफ़्टवेयर के साथ डेटा का आदान-प्रदान करने के लिए)
इस मामले में आप अपनी सूची को गतिशील रूप से आरंभ करने के बाद ToArray () विधि का उपयोग कर सकते हैं
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
बेशक, इसका अर्थ केवल तभी है जब सरणी का आकार कभी ज्ञात नहीं है और न ही पूर्व-पूर्व निर्धारित है । यदि आप पहले से ही कार्यक्रम के कुछ बिंदु पर अपने सरणी के आकार को जानते हैं, तो इसे एक निश्चित लंबाई के सरणी के रूप में आरंभ करना बेहतर है। (यदि आप उदाहरण के लिए ResultSet से डेटा प्राप्त करते हैं, तो आप उसका आकार गिन सकते हैं और उस आकार की एक सरणी आरंभ कर सकते हैं, गतिशील रूप से)
गतिशील सरणी उदाहरण:
Console.WriteLine("Define Array Size? ");
int number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter numbers:\n");
int[] arr = new int[number];
for (int i = 0; i < number; i++)
{
arr[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < arr.Length; i++ )
{
Console.WriteLine("Array Index: "+i + " AND Array Item: " + arr[i].ToString());
}
Console.ReadKey();
सरणी सूची का उपयोग करें जो वास्तव में सरणी को लागू करती है। यह शुरू में आकार 4 की सरणी लेता है और जब यह पूर्ण हो जाता है, तो इसके दोहरे आकार के साथ एक नया सरणी बनाया जाता है और पहले सरणी के डेटा को दूसरे सरणी में कॉपी किया जाता है, अब नए आइटम को नए सरणी में डाला जाता है। दूसरे सरणी का नाम भी पहले का एक उपनाम बनाता है ताकि इसे पिछले नाम के समान नाम से एक्सेस किया जा सके और पहला सरणी निपटारा हो जाए
यह उत्तर आपको लगता है कि मैं ऐसा क्यों नहीं कर सकता हूं इसका उत्तर प्रतीत होता है : डायनेमिक x = नया एक्सपेंडेबॉजेक्ट {Foo = 12, Bar = "बारह"}
के बारे में पढ़ें ExpandoObjectयहाँ https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx
और dynamicयहां टाइप करें https://msdn.microsoft.com/en-GB/library/dd264736.aspx