डेटा संग्रहण।>

मान लीजिए कि आपने "उपयोगकर्ता शत्रुतापूर्ण" नामक एक कंप्यूटर गेम विकसित किया है जिसमें खिलाड़ी पेचीदा और अमित्र के खिलाफ प्रतिस्पर्धा करते हैं कंप्यूटर इंटरफ़ेस। अब आपको एक ऐसा प्रोग्राम लिखने की जरूरत है जो पांच साल की अवधि में इस गेम की मासिक बिक्री को ट्रैक करे। या मान लें कि आपको हैकर हीरो ट्रेडिंग कार्ड्स को इन्वेंटरी करने की आवश्यकता है।
बहुत जल्द आप इस निष्कर्ष पर पहुंचेंगे कि जानकारी को स्टोर और प्रोसेस करने के लिए आपको साधारण बुनियादी डेटा प्रकारों से अधिक की आवश्यकता है।

 

Arrays. परिचय।

बड़ी मात्रा में डेटा के साथ काम करना आसान बनाने के लिए, कोशिकाओं के एक समूह को एक सामान्य दिया जाता है नाम। कोशिकाओं के ऐसे समूह को सरणी कहा जाता है।
सरणी – यह एक ही प्रकार की मेमोरी सेल्स का एक समूह है, जो अगल-बगल स्थित है और एक सामान्य नाम है। समूह में प्रत्येक सेल की एक अद्वितीय संख्या होती है।

सरणी के साथ काम करते समय आपको तीन चीजें सीखनी चाहिए:
एक्स सरणी के लिए आवश्यक आकार की मेमोरी आवंटित करें;
एक्स वांछित सेल में डेटा लिखें;
एक्स सेल से डेटा पढ़ें।

एक सरणी बनाएं।>

एक सरणी बनाते समय, मेमोरी में स्थान आवंटित किया जाता है (कोशिकाओं की एक निश्चित संख्या)। <पूर्व> 1) सरणियों को केवल तत्वों की गणना करके बनाया जा सकता है: <पूर्व> int[] nums = < कोड>नया int[] { 1, 2, 3, 5}; int का अर्थ है कि सरणी में सभी ऑब्जेक्ट पूर्णांक <कोड> हैं। int के स्थान पर कोई अन्य डेटा प्रकार हो सकता है। उदाहरण के लिए, <कोड> स्ट्रिंग [] नाम = ["वास्या", "पीटर", "फेड्या"]; 2) हम सरणी के मान को तुरंत निर्दिष्ट नहीं कर सकते हैं, लेकिन केवल उस लंबाई की एक सरणी बना सकते हैं जिसकी हमें आवश्यकता है। int[] अंक = new int[4]; 3) एक सरणी हमेशा "जानती है" आपका आकार। सरणी का आकार a इस प्रकार पाया जा सकता है:
a.Length;
अक्सर ऐरे के आकार को एक अलग वेरिएबल में स्टोर किया जाता है ताकि प्रोग्राम को एक अलग एरे आकार के साथ काम करने के लिए आसानी से बदला जा सके। उदाहरण:
<पूर्व> int N = 10; // सरणी के आकार को वेरिएबल N में स्टोर करें int [] अंक = नया int [4]; // आकार एन की एक सरणी बनाएँ कंसोल। लिखें (अंक। लंबाई); // सरणी का आकार प्रदर्शित करें सरणी का आकार कीबोर्ड से सेट किया जा सकता है।

एक सरणी तत्व का जिक्र करते हुए। सरणी की अधिकांश उपयोगिता इस तथ्य से आती है कि इसके तत्वों को व्यक्तिगत रूप से एक्सेस किया जा सकता है।
ऐसा करने का तरीका तत्वों को क्रमांकित करने के लिए एक अनुक्रमणिका का उपयोग करना है।
इंडेक्स एक मान है जो किसी विशेष सरणी तत्व को इंगित करता है।

याद रखें: C# सरणी क्रमांकन शून्य से शुरू होता है।< br />
ऐरे A तक पहुँचने के उदाहरण:
<पूर्व> int x = (A[3] + 5) * A[1] / / पढ़ें मान A[3] और A[1] A[0] = x + 6 // A[0] में नया मान लिखें आइए सरणी तत्वों के साथ काम करने के लिए प्रोग्राम का विश्लेषण करें। <पूर्व> int i = 1; इंट [] ए = नया इंट [5]; // 5 तत्वों की एक सरणी बनाएँ ए [0] = 23; // सरणी के 5 तत्वों में से प्रत्येक के लिए (0 से 4 तक अनुक्रमित) ए [1] = 12; // एक विशिष्ट मूल्य लिखें ए [2] = 7; ए [3] = 43; ए [4] = 51; ए [2] = ए [आई] + 2 * ए [आई -1] + ए [2 * आई]; // अभिव्यक्ति के परिणाम के लिए सूचकांक 2 के साथ तत्व का मान बदलें // क्योंकि i = 1, फिर हम प्राप्त अभिव्यक्ति में चर i के मान को प्रतिस्थापित करते हैं // अगली अभिव्यक्ति ए [2] = ए [1] + 2 * ए [0] + ए [2]; कंसोल। लिखें ((ए [2] + ए [4])); इस कार्यक्रम को निष्पादित करने के परिणामस्वरूप, सरणी के तत्वों के योग का मान इंडेक्स 2 और इंडेक्स 4 के साथ स्क्रीन पर दिखाई देगा, 116 के बराबर। जैसा कि आप उदाहरण से देख सकते हैं, हम ऐरे के किसी भी तत्व तक पहुंच सकते हैं। और विभिन्न फ़ार्मुलों का उपयोग करके आवश्यक तत्व संख्या की गणना भी करें (उदाहरण के लिए, जैसा कि प्रोग्राम A[i-1] या A[2*i] में है, इन मामलों में, तत्व सूचकांकों की गणना की जाएगी और i) के मान पर निर्भर करेगा।

आइए एक उदाहरण कार्यक्रम का विश्लेषण करें।
<पूर्व> int N = 5; इंट [] ए = नया इंट [एन]; इंट एक्स = 1; ए [एक्स + 4] = ए [एक्स] + ए [2 * (एक्स + 1)];  // x को व्यंजकों और गणनाओं में बदलने के बाद                            // अगली पंक्ति प्राप्त करें ए [5] = ए [1] + ए [4]                           // ए [5] ऐसा कोई तत्व मौजूद नहीं है                           // त्रुटि - सीमा से बाहर सरणी ऐरे को 5 तत्वों के साथ घोषित किया गया है, जिसका अर्थ है कि तत्वों को 0 से क्रमांकित किया जाएगा  4. हम देखते हैं, कि छठी पंक्ति में प्रोग्राम एक गैर-मौजूद तत्व को संदर्भित करता है: A[5]
यह पता चला है कि कार्यक्रम सरणी की सीमा से परे चला गया है।
एक सरणी ओवररन उस इंडेक्स पर एक तत्व तक पहुंच है जो सरणी में मौजूद नहीं है।
ऐसे मामलों में, प्रोग्राम आमतौर पर रन-टाइम त्रुटि के साथ क्रैश हो जाता है।

 

सरणी के साथ काम करते समय, आपको आमतौर पर सरणी के सभी तत्वों के साथ एक साथ काम करना पड़ता है।
तत्वों पर पुनरावृति: हम सरणी के सभी तत्वों को देखते हैं और यदि आवश्यक हो, तो उनमें से प्रत्येक के साथ कुछ ऑपरेशन करते हैं।
इसके लिए, चर के साथ एक लूप का सबसे अधिक उपयोग किया जाता है, जो 0 से N-1 में बदल जाता है, जहां N  सरणी तत्वों की।
N के अंतर्गत हम सरणी के वर्तमान आकार, यानी
पर विचार करेंगे N = A.Length;
<पूर्व> ... <कोड> के लिए (int i = 0; i < N; i++) { // यहां हम ए [i] के साथ काम करते हैं } निर्दिष्ट लूप में, i चर मानों पर ले जाएगा 0, 1, 2, ..., N-1.  इस प्रकार, लूप के प्रत्येक चरण में, हम संख्या i के साथ सरणी के एक विशिष्ट तत्व तक पहुंचते हैं।
अर्थात्, यह वर्णन करने के लिए पर्याप्त है कि A[i] सरणी के एक तत्व के साथ क्या किया जाना चाहिए और इन क्रियाओं को ऐसे लूप के अंदर रखें।

आइए एक प्रोग्राम लिखते हैं जो सरणी को पहले प्राकृतिक संख्याओं से भरता है, यानी प्रोग्राम के अंत में, सरणी के तत्व बराबर हो जाने चाहिए
<पूर्व> A[0] = 1 ए [1] = 2 ए [2] = 3 ... ए[एन - 1] = एन पैटर्न को देखना आसान है: किसी सरणी तत्व का मान 1 से अधिक होना चाहिए तत्व का सूचकांक।
लूप इस तरह दिखेगा
<पूर्व> for (int i = 0; i < N; i++) { A[ मैं] = मैं + 1; }

सरणी तत्वों के साथ काम करने के अतिरिक्त तरीके
for को छोड़कर , आप foreach - यह इंडेक्स का उपयोग किए बिना सरणी के सभी तत्वों पर पुनरावृति करता है। कभी-कभी यह सुविधाजनक हो सकता है, उदाहरण के लिए, स्क्रीन पर एक सरणी प्रदर्शित करना।   foreach (इंट मैं ए में) { कंसोल। लिखें (i + " "); }
और इस प्रकार आप एक सरणी को पढ़ सकते हैं, जिसके तत्व एक पंक्ति पर लिखे गए हैं और एक स्थान से अलग हो गए हैं, कीबोर्ड से। System.Linq का उपयोग करना; // सरणियों के साथ काम करने से संबंधित कार्यों का उपयोग करने के लिए आपको यह निर्देश लिखने की आवश्यकता है ... स्ट्रिंग टेक्स्ट = कंसोल। रीडलाइन (); int[] array = text.Split(' ').Select(int.Parse).ToArray(); // विभाजन () स्ट्रिंग को अलग-अलग वस्तुओं में विभाजित करता है (इस मामले में, अंतरिक्ष विभाजन) // चयन करें (int.Parse) प्रत्येक ऑब्जेक्ट (स्ट्रिंग) को एक इंट में परिवर्तित करता है // ToArray () सभी प्राप्त वस्तुओं को सरणी में लिखता है