C# 堆栈 - Clear() 方法
C# 堆栈 Clear() 方法用于清空堆栈,方法是移除堆栈中的所有元素。
执行此方法时,计数会被设置为零,并且对集合元素中其他对象的引用也会被释放。这需要 O(n) 的时间复杂度,其中 n 是计数。
语法
以下是 C# 堆栈 Clear() 方法的语法 -
public virtual void Clear ();
参数
此方法不接受任何参数。
返回值
此方法不返回任何值。
示例 1:在 Stack 中使用 Clear() 方法
以下是使用 Clear() 方法清空堆栈的基本示例 -
using System; using System.Collections; class Example { public static void Main() { Stack myStack = new Stack(); // 将元素插入到堆栈中 myStack.Push(1); myStack.Push(2); myStack.Push(3); myStack.Push(4); myStack.Push(5); Console.Write("Total number of elements in the Stack are: "); Console.WriteLine(myStack.Count); // 从 Stack 中移除所有元素 myStack.Clear(); Console.Write("Total number of elements in the Stack are: "); Console.WriteLine(myStack.Count); } }
输出
以下是输出 -
Total number of elements in the Stack are: 5 Total number of elements in the Stack are: 0
示例 2:清除堆栈中的所有字符串
让我们看另一个使用 Clear() 方法清除堆栈中所有字符串的示例 -
using System; using System.Collections; class Example { public static void Main() { Stack myStack = new Stack(); // 将元素插入到堆栈中 myStack.Push("Hello"); myStack.Push("tutorialspoint"); myStack.Push("India"); myStack.Push("Good to know"); Console.Write("Total number of elements in the Stack are: "); Console.WriteLine(myStack.Count); // 从 Stack 中移除所有元素 myStack.Clear(); Console.Write("Total number of elements in the Stack are: "); Console.WriteLine(myStack.Count); } }
输出
以下是输出 -
Total number of elements in the Stack are: 4 Total number of elements in the Stack are: 0
示例 3:从堆栈中清除 Person 对象
以下示例创建了一个 Person 对象。这里,我们使用 Clear() 方法清除 Person 对象中的所有 Person 详细信息 -
using System; using System.Collections.Generic; class Person { public string Name { get; set; } public int Age { get; set; } public Person(string name, int age) { Name = name; Age = age; } public override string ToString() { return $"Name: {Name}, Age: {Age}"; } } class Example { static void Main() { // 创建一个 Person 对象堆栈 Stack<Person> people = new Stack<Person>(); // 将 Person 对象推送到堆栈 people.Push(new Person("Aman", 25)); people.Push(new Person("Gupta", 24)); people.Push(new Person("Vivek", 26)); Console.WriteLine("People stack before Clear:"); foreach (var person in people) { Console.WriteLine(person); } // 清除堆栈 people.Clear(); Console.WriteLine("People stack after Clear:"); Console.WriteLine("Is Empty? " + (people.Count == 0 ? "Yes" : "No")); } }
输出
以下是输出 -
People stack before Clear: Name: Vivek, Age: 26 Name: Gupta, Age: 24 Name: Aman, Age: 25 People stack after Clear: Is Empty? Yes