Как вытолкнуть все элементы в стеке с помощью функции - PullRequest
1 голос
/ 06 мая 2019

Привет, я хочу очистить весь стек по функциям, а не по одному. Я хочу использовать цикл в функции, которая удаляет / выталкивает все элементы стека, которые вы можете видеть в моем коде

using System;
using System.Collections;
public class SamplesStack
{

    public static void Main()
    {

        // Creates and initializes a new Stack.
        Stack myStack = new Stack();
        myStack.Push("Hello");
        myStack.Push("World");
        myStack.Push("!");


        // Displays the properties and values of the Stack.
       // Console.WriteLine("myStack");
        Console.WriteLine("\tCount:    {0}", myStack.Count);
        Console.Write("\tValues:");
        PrintValues(myStack);
       object pt = myStack.Pop();
        Console.WriteLine("\tCount:    {0}", myStack.Count);
        Console.ReadLine();
    }

    public static void PrintValues(IEnumerable myCollection)
    {
        foreach (Object obj in myCollection)
            Console.Write("    {0}", obj);
        Console.WriteLine();
    }
    public static void emptyStack(Stack empty)
    {
     what to do here

    }

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Итак, вот ответ на мой вопрос: я пробовал разные вещи, поэтому я сделал это с помощью этой функции

public static void PopStack(Stack stObj)
    {
        foreach (var st in stObj.ToArray())
        {
            var obj= stObj.Pop();
            Console.WriteLine(count);
            Console.WriteLine(obj);

        }

        Console.WriteLine("\tCount:    {0}", stObj.Count);

    }
0 голосов
/ 06 мая 2019

У вас есть несколько разных вариантов. Вот пара:

  1. Простой вариант - одна строка кода, упомянутая в комментариях: myStack.Clear(); ( Microsoft Doc ).
  2. Переберите стек и выскочит, пока он не станет пустым:
while(myStack.Count > 0) 
{ 
   myStack.Pop();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...