| File: FrameworkFork\Microsoft.Xml\Xml\XPath\Internal\ClonableStack.cs | Web Access |
| Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. namespace MS.Internal.Xml.XPath { using System; using Microsoft.Xml; using Microsoft.Xml.XPath; using System.Diagnostics; internal sealed class ClonableStack<T> : System.Collections.Generic.List<T> { public ClonableStack() { } public ClonableStack(int capacity) : base(capacity) { } private ClonableStack(System.Collections.Generic.IEnumerable<T> collection) : base(collection) { } public void Push(T value) { base.Add(value); } public T Pop() { int last = base.Count - 1; T result = base[last]; base.RemoveAt(last); return result; } public T Peek() { return base[base.Count - 1]; } public ClonableStack<T> Clone() { return new ClonableStack<T>(this); } } }