Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में Stack को ऐरे में कॉपी करना

Stack<T>.CopyTo() मेथड स्टैक के तत्वों को एक-आयामी ऐरे में कॉपी करता है। तत्व टॉप से बॉटम के क्रम में कॉपी होते हैं (यानी, जो तत्व पहले Pop होगा, वह ऐरे के इंडेक्स 0 पर जाएगा)।

उदाहरण 1: सटीक आकार के ऐरे में कॉपी करना

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        Stack<int> stack = new Stack<int>();
        
        // 10 से 100 तक पुश करें (100 टॉप पर होगा)
        for (int i = 10; i <= 100; i += 10) {
            stack.Push(i);
        }

        Console.WriteLine("स्टैक प्रदर्शित (टॉप से बॉटम)...");
        foreach (int val in stack) {
            Console.WriteLine(val);
        }

        // स्टैक आकार का ऐरे बनाएं
        int[] intArr = new int[stack.Count];
        
        // इंडेक्स 0 से कॉपी करें
        stack.CopyTo(intArr, 0);

        Console.WriteLine("\nऐरे प्रदर्शित (इंडेक्स 0 = स्टैक टॉप)...");
        foreach (int val in intArr) {
            Console.WriteLine(val);
        }
    }
}

आउटपुट

स्टैक प्रदर्शित (टॉप से बॉटम)...
100
90
80
70
60
50
40
30
20
10

ऐरे प्रदर्शित (इंडेक्स 0 = स्टैक टॉप)...
100
90
80
70
60
50
40
30
20
10

उदाहरण 2: बड़े ऐरे में ऑफसेट के साथ कॉपी करना

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        Stack<int> stack = new Stack<int>();
        stack.Push(10);
        stack.Push(20);
        stack.Push(30);
        stack.Push(40);
        stack.Push(50);

        Console.WriteLine("स्टैक प्रदर्शित (टॉप से बॉटम)...");
        foreach (int val in stack) {
            Console.WriteLine(val);
        }

        // 10 आकार का ऐरे, इंडेक्स 2 से कॉपी करें
        int[] intArr = new int[10];
        stack.CopyTo(intArr, 2);

        Console.WriteLine("\nऐरे प्रदर्शित (इंडेक्स 2 से शुरू)...");
        foreach (int val in intArr) {
            Console.WriteLine(val);
        }
    }
}

आउटपुट

स्टैक प्रदर्शित (टॉप से बॉटम)...
50
40
30
20
10

ऐरे प्रदर्शित (इंडेक्स 2 से शुरू)...
0
0
50
40
30
20
10
0
0
0

महत्वपूर्ण व्यवहार

  • कॉपी क्रम: टॉप-टू-बॉटम (LIFO क्रम) - foreach इटरेशन के समान।
  • ऐरे इंडेक्स 0 को स्टैक का टॉप तत्व प्राप्त होता है।
  • मूल स्टैक अपरिवर्तित रहता है - CopyTo केवल पढ़ता है।
  • लक्ष्य ऐरे में पर्याप्त क्षमता होनी चाहिए: index + stack.Count ≤ array.Length।
  • डिफ़ॉल्ट मान (0, null, false) अप्रयुक्त स्लॉट्स में रहते हैं।

उपयोग का मामला

स्टैक को ऐरे में कॉपी करना उपयोगी होता है जब आपको:

  • स्टैक को संशोधित किए बिना तत्वों का विश्लेषण करना हो।
  • स्टैक सामग्री को सीरियलाइज़/सेव करना हो।
  • रैंडम एक्सेस द्वारा तत्वों को एक्सेस करना हो (स्टैक केवल टॉप एक्सेस देता है)।
  1. - C# में Stack क्लास क्या है?

    Stack का उपयोग तब किया जाता है जब आपको आइटम्स की लास्ट-इन, फर्स्ट-आउट एक्सेस की आवश्यकता होती है। जब आप लिस्ट में एक आइटम जोड़ते हैं, तो इसे आइटम को पुश करना कहा जाता है और जब आप इसे हटाते हैं, तो इसे आइटम को पॉप करना कहा जाता है।आइए C# में Stack क्लास का एक उदाहरण देखें:सबसे पहले, Stack में एलिमेंट

  1. - C# में Stack क्लास का Count गुण क्या है?

    Stack क्लास में कितने एलिमेंट्स जोड़े गए हैं, यह जानने के लिए आपको Count गुण का उपयोग करना होगा।आइए पहले स्टैक में एलिमेंट्स जोड़ें:Stack st = new Stack(); st.Push(H); st.Push(I); st.Push(J); st.Push(K); st.Push(L); st.Push(M); st.Push(N); st.Push(O);अब स्टैक में एलिमेंट्स की संख्या गिनें:Console.Wr

  1. - C# में ऐरे कॉपी (Array Copy)

    C# में एक ऐरे के सेक्शन को दूसरे ऐरे में कॉपी करने के लिए Array.Copy मेथड का उपयोग करें।हमारे मूल ऐरे में 10 एलिमेंट्स हैं:int[] n = new int[10]; /* n 10 इंटीजर्स का ऐरे है */हमारा नया ऐरे जो पहले ऐरे के सेक्शन को कॉपी करेगा, उसमें 5 एलिमेंट्स हैं:int[] m = new int[5]; /* m 5 इंटीजर्स का ऐरे है */Ar