void Main()
{
Stack<string> stack1 = new Stack<string>();
if (stack1.TryPop(out string result) == false)
"stack1 目前為空值,無法取值".Dump("Stack.TryPop() 使用");
stack1.Push("one");
stack1.Push("two");
stack1.Push("three");
stack1.Push("four");
stack1.Push("five");
stack1.Dump("顯示 stack 內元素,後進先出 (LIFO) 特色");
stack1.Pop().Dump("Pop:第一次取值");
stack1.Peek().Dump("Peek:下一次取值的資料");
stack1.Pop().Dump("Pop:第二次取值");
// 建構子接受參數為 IEnumerable<T>,透過它來建立 Stack2
// stack1 經過上述兩次取值後,只剩下三筆資料 - three,two,one,
// 因為後進先出 (LIFO) 特色,dump 出來後就又變成正向 one,two,three
Stack<string> stack2 = new Stack<string>(stack1.ToArray());
stack2.Dump("stack2 內容");
@$"stack2.Contains(""four"") = {stack2.Contains("four")}".Dump("是否包含 four");
// Create an array twice the size of the stack and copy the
// elements of the stack, starting at the middle of the array.
string[] array3 = new string[stack1.Count * 2];
stack1.CopyTo(array3, stack1.Count);
Stack<string> stack3 = new Stack<string>(array3);
stack3.Dump("CopyTo():stack3 內容,包含 nulls");
stack2.Clear();
stack2.Count.Dump("使用 Clear() 清空 stakc2 並列出 stack2.Count 確認");
}
執行結果星期五, 7月 29, 2022
[C#] Stack
對於 Stack 認知,只停留在後進先出 (LIFO) 觀念,剛好在社群討論上時有提到,根據官方文章 - Stack<T> 來理解基礎使用並筆記
沒有留言:
張貼留言