如果该数目小于阈值,则使用C#中的Stack.TrimExcess()方法将容量设置为List <T>中的实际元素数。
public void TrimExcess ();
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Stack<int> stack = new Stack<int>();
stack.Push(100);
stack.Push(150);
stack.Push(175);
stack.Push(200);
stack.Push(225);
stack.Push(250);
stack.Push(300);
stack.Push(400);
stack.Push(450);
stack.Push(500);
Console.WriteLine("堆栈中的元素:");
foreach(var val in stack) {
Console.WriteLine(val);
}
Console.WriteLine("Count of elements in the Stack = "+stack.Count);
Console.WriteLine("Does Stack has the element 400?= "+stack.Contains(400));
stack.Clear();
stack.TrimExcess();
Console.WriteLine("Count of elements in the Stack (updated) = "+stack.Count);
}
}输出结果
堆栈中的元素: 500 450 400 300 250 225 200 175 150 100 Count of elements in the Stack = 10 Does Stack has the element 400?= True Count of elements in the Stack (updated) = 0
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Stack<string> stack = new Stack<string>();
stack.Push("A");
stack.Push("B");
stack.Push("C");
stack.Push("D");
stack.Push("E");
stack.Push("F");
stack.Push("G");
stack.Push("H");
Console.WriteLine("Count of elements = "+stack.Count);
Console.WriteLine("Elements in Stack...");
foreach (string res in stack) {
Console.WriteLine(res);
}
Console.Write("Count of elements (updated) = "+stack.Count);
stack.Clear();
stack.TrimExcess();
Console.WriteLine("Count of elements in the Stack (updated) = "+stack.Count);
}
}输出结果
Count of elements = 8 Elements in Stack... H G F E D C B A Count of elements (updated) = 8Count of elements in the Stack (updated) = 0