내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

Stack<T>.Clear 메서드

Stack<T> 에서 개체를 모두 제거합니다.

네임스페이스:  System.Collections.Generic
어셈블리:  System(System.dll)

public void Clear()

Count 는 0으로 설정되고, 컬렉션 요소의 다른 개체에 대한 참조도 해제됩니다.

용량은 변경되지 않습니다. Stack<T> 의 용량을 다시 설정하려면 TrimExcess를 호출합니다. Stack<T>를 트리밍하면 Stack<T>의 용량이 기본 용량으로 설정됩니다.

이 메서드는 O(n) 연산이며, 여기에서 nCount입니다.

다음 코드 예제에서는 Clear 메서드를 비롯하여 Stack<T> 제네릭 클래스의 몇 가지 메서드를 보여 줍니다.

이 코드 예제에서는 기본 용량으로 문자열의 스택을 만들고 Push 메서드를 사용하여 문자열 5개를 스택에 푸시합니다. 스택의 요소가 열거되지만 스택의 상태는 변경되지 않습니다. Pop 메서드를 사용하여 스택에서 첫 번째 문자열을 팝합니다. Peek 메서드를 사용하여 스택에서 다음 항목을 찾은 다음 Pop 메서드를 사용하여 해당 항목을 팝합니다.

ToArray 메서드를 사용하여 배열을 만들고 스택 요소를 배열에 복사한 다음 IEnumerable<T>을 사용하는 Stack<T> 생성자에 배열을 전달하여 요소 순서가 반대로 된 스택의 복사본을 만듭니다. 복사본의 요소가 표시됩니다.

스택 크기의 두 배인 배열이 만들어지고 CopyTo 메서드가 배열 중간에서 시작되는 배열 요소를 복사하는 데 사용됩니다. Stack<T> 생성자를 다시 사용하여 요소의 순서가 반대로 된 스택의 복사본을 만듭니다. 요소의 순서가 반대이기 때문에 null 요소 세 개는 끝 부분에 있습니다.

Contains 메서드를 사용하여 "four" 문자열이 스택의 첫 번째 복사본에 있음을 보여 준 다음 Clear 메서드를 사용하여 복사본을 지우고 Count 속성을 통해 스택이 비어 있음을 보여 줍니다.


using System;
using System.Collections.Generic;

class Example
{
    public static void Main()
    {
        Stack<string> numbers = new Stack<string>();
        numbers.Push("one");
        numbers.Push("two");
        numbers.Push("three");
        numbers.Push("four");
        numbers.Push("five");

        // A stack can be enumerated without disturbing its contents.
        foreach( string number in numbers )
        {
            Console.WriteLine(number);
        }

        Console.WriteLine("\nPopping '{0}'", numbers.Pop());
        Console.WriteLine("Peek at next item to destack: {0}", 
            numbers.Peek());
        Console.WriteLine("Popping '{0}'", numbers.Pop());

        // Create a copy of the stack, using the ToArray method and the
        // constructor that accepts an IEnumerable<T>.
        Stack<string> stack2 = new Stack<string>(numbers.ToArray());

        Console.WriteLine("\nContents of the first copy:");
        foreach( string number in stack2 )
        {
            Console.WriteLine(number);
        }

        // Create an array twice the size of the stack and copy the
        // elements of the stack, starting at the middle of the 
        // array. 
        string[] array2 = new string[numbers.Count * 2];
        numbers.CopyTo(array2, numbers.Count);

        // Create a second stack, using the constructor that accepts an
        // IEnumerable(Of T).
        Stack<string> stack3 = new Stack<string>(array2);

        Console.WriteLine("\nContents of the second copy, with duplicates and nulls:");
        foreach( string number in stack3 )
        {
            Console.WriteLine(number);
        }

        Console.WriteLine("\nstack2.Contains(\"four\") = {0}", 
            stack2.Contains("four"));

        Console.WriteLine("\nstack2.Clear()");
        stack2.Clear();
        Console.WriteLine("\nstack2.Count = {0}", stack2.Count);
    }
}

/* This code example produces the following output:

five
four
three
two
one

Popping 'five'
Peek at next item to destack: four
Popping 'four'

Contents of the first copy:
one
two
three

Contents of the second copy, with duplicates and nulls:
one
two
three




stack2.Contains("four") = False

stack2.Clear()

stack2.Count = 0
 */


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2015 Microsoft