내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Array 클래스

2013-12-13

배열을 만들고, 조작하고, 검색 및 정렬하여 공용 언어 런타임에서 모든 배열의 기본 클래스 역할을 수행하도록 하는 메서드를 제공합니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

public abstract class Array : IList, 
	ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable

Array 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 속성IsFixedSizeArray의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.
Public 속성IsReadOnlyArray가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.
Public 속성IsSynchronizedArray에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.
Public 속성LengthArray의 모든 차원에 있는 요소의 총 수를 나타내는 32비트 정수를 가져옵니다. 배열에 요소가 없으면 0입니다.
Public 속성RankArray의 차원 수(0부터 시작하는 차수)를 가져옵니다.
Public 속성SyncRootArray에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.
맨 위

  이름설명
Public 메서드정적 멤버AsReadOnly<T>지정한 배열의 읽기 전용 래퍼를 반환합니다.
Public 메서드정적 멤버BinarySearch(Array, Object)Array의 각 요소 및 지정한 개체에서 구현되는 IComparable 인터페이스를 사용하여 1차원으로 정렬된 전체 Array에서 특정 요소를 검색합니다.
Public 메서드정적 멤버BinarySearch(Array, Object, IComparer)지정한 IComparer 인터페이스를 사용하여 1차원으로 정렬된 전체 Array에서 값을 검색합니다.
Public 메서드정적 멤버BinarySearch(Array, Int32, Int32, Object)Array의 각 요소 및 지정한 값에서 구현되는 IComparable 인터페이스를 사용하여 1차원으로 정렬된 Array의 요소 범위에서 값을 검색합니다.
Public 메서드정적 멤버BinarySearch(Array, Int32, Int32, Object, IComparer)지정한 IComparer 인터페이스를 사용하여 1차원으로 정렬된 Array의 요소 범위에서 값을 검색합니다.
Public 메서드정적 멤버BinarySearch<T>(T[], T)Array의 각 요소 및 지정한 개체에서 구현되는 IComparable<T> 제네릭 인터페이스를 사용하여 1차원으로 정렬된 전체 Array에서 특정 요소를 검색합니다.
Public 메서드정적 멤버BinarySearch<T>(T[], T, IComparer<T>)지정한 IComparer<T> 제네릭 인터페이스를 사용하여 1차원으로 정렬된 전체 Array에서 값을 검색합니다.
Public 메서드정적 멤버BinarySearch<T>(T[], Int32, Int32, T)Array의 각 요소 및 지정한 값에서 구현되는 IComparable<T> 제네릭 인터페이스를 사용하여 1차원으로 정렬된 Array의 요소 범위에서 값을 검색합니다.
Public 메서드정적 멤버BinarySearch<T>(T[], Int32, Int32, T, IComparer<T>)지정한 IComparer<T> 제네릭 인터페이스를 사용하여 1차원으로 정렬된 Array의 요소 범위에서 값을 검색합니다.
Public 메서드정적 멤버Clear요소 형식에 따라 Array의 요소 범위를 0, false 또는 null로 설정합니다.
Public 메서드CloneArray의 단순 복사본을 만듭니다.
Public 메서드정적 멤버ConstrainedCopyArray의 요소 범위를 지정한 소스 인덱스부터 복사하여 다른 Array에 지정한 대상 인덱스부터 붙여넣습니다. 복사가 완료되지 않으면 모든 변경 내용이 취소되도록 합니다.
Public 메서드정적 멤버Copy(Array, Array, Int32)Array의 요소 범위를 첫 번째 요소부터 복사하여 다른 Array에 첫 번째 요소부터 붙여넣습니다. 길이가 32비트 정수로 지정되어 있습니다.
Public 메서드정적 멤버Copy(Array, Int32, Array, Int32, Int32)Array의 요소 범위를 지정한 소스 인덱스부터 복사하여 다른 Array에 지정한 대상 인덱스부터 붙여넣습니다. 길이와 인덱스가 32비트 정수로 지정되어 있습니다.
Public 메서드CopyTo현재 1차원 Array의 모든 요소를 지정된 대상 Array 인덱스부터 시작하여 지정된 1차원 Array에 복사합니다. 인덱스가 32비트 정수로 지정되어 있습니다.
Public 메서드정적 멤버CreateInstance(Type, Int32)지정한 Type 및 길이를 가진 인덱스가 0부터 시작하는 1차원 Array를 만듭니다.
Public 메서드정적 멤버CreateInstance(Type, Int32[])지정한 Type 및 차원 길이를 가진 인덱스가 0부터 시작하는 다차원 Array를 만듭니다. 차원 길이가 32비트 정수 배열로 지정되어 있습니다.
Public 메서드정적 멤버CreateInstance(Type, Int32[], Int32[])지정한 하한을 가진 지정한 Type 및 차원 길이의 다차원 Array를 만듭니다.
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 확인합니다. (Object에서 상속됨)
Public 메서드정적 멤버Exists<T>지정한 배열에 지정한 조건자에 정의된 조건과 일치하는 요소가 포함되어 있는지 여부를 확인합니다.
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드정적 멤버Find<T>지정된 조건자에 정의된 조건과 일치하는 요소를 검색하고 전체 Array에서 처음으로 검색한 요소를 반환합니다.
Public 메서드정적 멤버FindAll<T>지정한 조건자에 정의된 조건과 일치하는 모든 요소를 검색합니다.
Public 메서드정적 멤버FindIndex<T>(T[], Predicate<T>)지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 전체 Array에서 일치하는 요소 중 첫 번째 요소의 인덱스(0부터 시작)를 반환합니다.
Public 메서드정적 멤버FindIndex<T>(T[], Int32, Predicate<T>)지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 지정한 인덱스에서 마지막 요소로 확장하는 Array의 요소 범위에서 일치하는 요소 중 첫 번째 요소의 인덱스(0부터 시작)를 반환합니다.
Public 메서드정적 멤버FindIndex<T>(T[], Int32, Int32, Predicate<T>)지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 지정한 인덱스부터 시작하여 지정한 수의 요소를 포함하는 Array의 요소 범위에서 일치하는 요소 중 첫 번째 요소의 인덱스(0부터 시작)를 반환합니다.
Public 메서드정적 멤버FindLast<T>지정된 조건자에 정의된 조건과 일치하는 요소를 검색하고 전체 Array에서 마지막으로 검색한 요소를 반환합니다.
Public 메서드정적 멤버FindLastIndex<T>(T[], Predicate<T>)지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 전체 Array에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.
Public 메서드정적 멤버FindLastIndex<T>(T[], Int32, Predicate<T>)지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 첫 번째 요소에서 지정한 인덱스로 확장하는 Array의 요소 범위에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.
Public 메서드정적 멤버FindLastIndex<T>(T[], Int32, Int32, Predicate<T>)지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 지정한 수의 요소가 들어 있고 지정한 인덱스에서 끝나는 Array의 요소 범위에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.
Public 메서드정적 멤버ForEach<T>지정한 배열의 각 요소에서 지정한 동작을 수행합니다.
Public 메서드GetEnumeratorArray에 대한 IEnumerator를 반환합니다.
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetLength지정된 차원의 Array에 있는 요소의 수를 나타내는 32비트 정수를 가져옵니다.
Public 메서드GetLowerBoundArray에 있는 지정한 차원의 하한을 가져옵니다.
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드GetUpperBoundArray에 있는 지정한 차원의 상한을 가져옵니다.
Public 메서드GetValue(Int32)1차원 Array의 지정한 위치에서 값을 가져옵니다. 인덱스가 32비트 정수로 지정되어 있습니다.
Public 메서드GetValue(Int32[])다차원 Array의 지정한 위치에서 값을 가져옵니다. 인덱스가 32비트 정수 배열로 지정되어 있습니다.
Public 메서드정적 멤버IndexOf(Array, Object)지정한 개체를 검색하여 1차원 Array 전체에서 처음 검색된 개체의 인덱스를 반환합니다.
Public 메서드정적 멤버IndexOf(Array, Object, Int32)지정한 개체를 검색하여 지정한 인덱스에서 마지막 요소로 확장하는 1차원 Array의 요소 범위에서 처음 검색된 요소의 인덱스를 반환합니다.
Public 메서드정적 멤버IndexOf(Array, Object, Int32, Int32)지정한 개체를 검색하여 지정한 인덱스부터 시작하여 지정한 수의 요소를 포함하는 1차원 Array의 요소 범위에서 처음 검색된 요소의 인덱스를 반환합니다.
Public 메서드정적 멤버IndexOf<T>(T[], T)지정한 개체를 검색하여 전체 Array에서 처음 검색된 개체의 인덱스를 반환합니다.
Public 메서드정적 멤버IndexOf<T>(T[], T, Int32)지정한 개체를 검색하여 지정한 인덱스에서 마지막 요소로 확장하는 Array의 요소 범위에서 처음 검색된 요소의 인덱스를 반환합니다.
Public 메서드정적 멤버IndexOf<T>(T[], T, Int32, Int32)지정한 개체를 검색하여 지정한 인덱스부터 시작하여 지정한 수의 요소를 포함하는 Array의 요소 범위에서 처음 검색된 요소의 인덱스를 반환합니다.
Public 메서드Initialize해당 값 형식의 기본 생성자를 호출하여 값 형식 Array의 모든 요소를 초기화합니다.
Public 메서드정적 멤버LastIndexOf(Array, Object)지정한 개체를 검색하여 1차원 Array 전체에서 마지막으로 일치하는 요소의 인덱스를 반환합니다.
Public 메서드정적 멤버LastIndexOf(Array, Object, Int32)지정한 개체를 검색하여 첫 번째 요소에서 지정한 인덱스로 확장하는 1차원 Array의 요소 범위에서 마지막으로 검색된 요소의 인덱스를 반환합니다.
Public 메서드정적 멤버LastIndexOf(Array, Object, Int32, Int32)지정한 개체를 검색하여 지정한 수의 요소를 포함하고 지정한 인덱스에서 끝나는 1차원 Array의 요소 범위에서 마지막으로 검색된 요소의 인덱스를 반환합니다.
Public 메서드정적 멤버LastIndexOf<T>(T[], T)지정한 개체를 검색하여 전체 Array에서 마지막으로 검색된 요소의 인덱스를 반환합니다.
Public 메서드정적 멤버LastIndexOf<T>(T[], T, Int32)지정한 개체를 검색하여 첫 번째 요소에서 지정한 인덱스로 확장하는 Array의 요소 범위에서 마지막으로 검색된 요소의 인덱스를 반환합니다.
Public 메서드정적 멤버LastIndexOf<T>(T[], T, Int32, Int32)지정한 개체를 검색하여 지정한 수의 요소를 포함하고 지정한 인덱스에서 끝나는 Array의 요소 범위에서 마지막으로 검색된 요소의 인덱스를 반환합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버Resize<T>배열의 요소 수를 지정된 새로운 크기로 변경합니다.
Public 메서드정적 멤버Reverse(Array)1차원 Array 전체에 있는 요소의 시퀀스를 역순으로 설정합니다.
Public 메서드정적 멤버Reverse(Array, Int32, Int32)1차원 Array의 요소 범위에 있는 요소의 시퀀스를 역순으로 설정합니다.
Public 메서드SetValue(Object, Int32)값을 1차원 Array에 있는 지정한 위치의 요소로 설정합니다. 인덱스가 32비트 정수로 지정되어 있습니다.
Public 메서드SetValue(Object, Int32[])값을 다차원 Array에 있는 지정한 위치의 요소로 설정합니다. 인덱스가 32비트 정수 배열로 지정되어 있습니다.
Public 메서드정적 멤버Sort(Array)Array에 있는 각 요소의 IComparable 구현을 사용하여 1차원 Array 전체의 요소를 정렬합니다.
Public 메서드정적 멤버Sort(Array, IComparer)지정한 IComparer를 사용하여 1차원 Array의 요소를 정렬합니다.
Public 메서드정적 멤버Sort(Array, Array, IComparer)지정한 IComparer를 사용하여 첫 번째 Array에 있는 키를 기반으로 하는 한 쌍의 1차원 Array 개체(키를 포함하는 개체와 해당 항목을 포함하는 개체)를 정렬합니다.
Public 메서드정적 멤버Sort(Array, Int32, Int32)Array에 있는 각 요소의 IComparable 구현을 사용하여 1차원 Array이 요소 범위에 있는 요소를 정렬합니다.
Public 메서드정적 멤버Sort(Array, Int32, Int32, IComparer)지정한 IComparer를 사용하여 1차원 Array의 요소 범위에 있는 요소를 정렬합니다.
Public 메서드정적 멤버Sort(Array, Array, Int32, Int32, IComparer)지정한 IComparer를 사용하여 첫 번째 Array에 있는 키를 기반으로 하는 한 쌍의 1차원 Array 개체(키를 포함하는 개체와 해당 항목을 포함하는 개체)의 요소 범위를 정렬합니다.
Public 메서드정적 멤버Sort<T>(T[])Array에 있는 각 요소의 IComparable<T> 제네릭 인터페이스 구현을 사용하여 전체 Array의 요소를 정렬합니다.
Public 메서드정적 멤버Sort<T>(T[], IComparer<T>)지정한 IComparer<T> 제네릭 인터페이스를 사용하여 Array의 요소를 정렬합니다.
Public 메서드정적 멤버Sort<T>(T[], Comparison<T>)지정한 Comparison<T>을 사용하여 Array의 요소를 정렬합니다.
Public 메서드정적 멤버Sort<T>(T[], Int32, Int32)Array에 있는 각 요소의 IComparable<T> 제네릭 인터페이스 구현을 사용하여 Array의 요소 범위에 있는 요소를 정렬합니다.
Public 메서드정적 멤버Sort<T>(T[], Int32, Int32, IComparer<T>)지정한 IComparer<T> 제네릭 인터페이스를 사용하여 Array의 요소 범위에 있는 요소를 정렬합니다.
Public 메서드정적 멤버Sort<TKey, TValue>(TKey[], TValue[])각 키의 IComparable<T> 제네릭 인터페이스 구현을 사용하여 첫 번째 Array에 있는 키를 기반으로 하는 한 쌍의 Array 개체(키를 포함하는 개체와 해당 항목을 포함하는 개체)를 정렬합니다.
Public 메서드정적 멤버Sort<TKey, TValue>(TKey[], TValue[], IComparer<TKey>)지정한 IComparer<T> 제네릭 인터페이스를 사용하여 첫 번째 Array에 있는 키를 기반으로 하는 한 쌍의 Array 개체(키를 포함하는 개체와 해당 항목을 포함하는 개체)를 정렬합니다.
Public 메서드정적 멤버Sort<TKey, TValue>(TKey[], TValue[], Int32, Int32)각 키에서 구현하는 IComparable<T> 제네릭 인터페이스를 사용하여 첫 번째 Array에 있는 키를 기반으로 하는 한 쌍의 Array 개체(키를 포함하는 개체와 해당 항목을 포함하는 개체)의 요소 범위를 정렬합니다.
Public 메서드정적 멤버Sort<TKey, TValue>(TKey[], TValue[], Int32, Int32, IComparer<TKey>)지정한 IComparer<T> 제네릭 인터페이스를 사용하여 첫 번째 Array에 있는 키를 기반으로 하는 한 쌍의 Array 개체(키를 포함하는 개체와 해당 항목을 포함하는 개체)의 요소 범위를 정렬합니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드정적 멤버TrueForAll<T>배열의 모든 요소가 지정한 조건자에 정의된 조건과 일치하는지 여부를 확인합니다.
맨 위

  이름설명
Public 확장 메서드AsQueryableIEnumerableIQueryable로 변환합니다. (Queryable에서 정의됨)
Public 확장 메서드Cast<TResult>IEnumerable의 요소를 지정된 형식으로 변환합니다. (Enumerable에서 정의됨)
Public 확장 메서드OfType<TResult>지정된 형식에 따라 IEnumerable의 요소를 필터링합니다. (Enumerable에서 정의됨)
맨 위

  이름설명
명시적 인터페이스 구현Private 속성ICollection.CountArray에 포함된 요소 수를 가져옵니다.
명시적 인터페이스 구현Private 메서드IList.AddIList.Add을 구현합니다. 모든 경우에 NotSupportedException을 발생합니다.
명시적 인터페이스 구현Private 메서드IList.Clear요소 형식에 따라 Array의 모든 요소를 0, false 또는 null로 설정합니다.
명시적 인터페이스 구현Private 메서드IList.Contains요소가 Array에 있는지 여부를 확인합니다.
명시적 인터페이스 구현Private 메서드IList.IndexOf지정한 개체를 검색하여 현재 1차원 인스턴스 내에서 처음 검색된 개체의 인덱스를 반환합니다.
명시적 인터페이스 구현Private 메서드IList.InsertIList.Insert을 구현합니다. 모든 경우에 NotSupportedException을 발생합니다.
명시적 인터페이스 구현Private 속성IList.Item지정된 인덱스에서 요소를 가져오거나 설정합니다.
명시적 인터페이스 구현Private 메서드IList.RemoveIList.Remove를 구현합니다. 모든 경우에 NotSupportedException을 발생합니다.
명시적 인터페이스 구현Private 메서드IList.RemoveAtIList.RemoveAt을 구현합니다. 모든 경우에 NotSupportedException을 발생합니다.
명시적 인터페이스 구현Private 메서드IStructuralComparable.CompareTo정렬 순서에서 현재 컬렉션 개체의 위치가 다른 개체보다 앞인지, 뒤인지 또는 동일한지를 확인합니다.
명시적 인터페이스 구현Private 메서드IStructuralEquatable.Equals개체가 현재 인스턴스와 같은지 여부를 확인합니다.
명시적 인터페이스 구현Private 메서드IStructuralEquatable.GetHashCode현재 인스턴스의 해시 코드를 반환합니다.
맨 위

Array 클래스는 배열을 지원하는 언어 구현의 기본 클래스입니다. 하지만, 시스템 및 컴파일러만 Array 클래스에서 명시적으로 파생시킬 수 있습니다. 사용자는 언어에서 제공되는 배열 구문을 사용해야 합니다.

요소는 Array의 값입니다. Array의 길이는 포함할 수 있는 요소의 총수입니다. Array의 차수는 Array의 차원 수입니다. Array의 차원에 대한 하한은 Array의 해당 차원에 대한 시작 인덱스이지만 다차원 Array에는 각 차원에 대해 서로 다른 범위를 지정할 수 있습니다.

Type 개체는 배열 형식 선언에 대한 정보를 제공합니다. 배열 형식이 같은 Array 개체는 같은 Type 개체를 공유합니다.

Array에서 Type.IsArrayType.GetElementType을 사용하면 예기치 않은 결과가 반환될 수 있습니다. 배열이 Array 형식으로 변환되면 결과는 배열이 아니라 개체이기 때문입니다. 즉, typeof(System.Array).IsArrayfalse를 반환하고 typeof(System.Array).GetElementTypenull을 반환합니다.

대부분의 클래스와 달리 Array는 런타임에 바인딩되는 액세스를 허용하는 공용 생성자 대신 CreateInstance 메서드를 제공합니다.

Array.Copy 메서드는 형식이 같은 배열뿐만 아니라 형식이 다른 표준 배열 간에도 요소를 복사하며 형식 캐스팅을 자동으로 처리합니다.

Array는 정렬되어 있지 않을 수 있으므로 Array가 정렬되어 있어야 하는 BinarySearch와 같은 작업을 수행하기 전에는 Array를 정렬해야 합니다.

다음 코드 예제에서는 Array.Copy를 사용하여 정수 형식의 배열과 Object 형식의 배열 간에 요소를 복사하는 방법을 설명합니다.

참고참고:

이 샘플 코드를 컴파일하고 실행하는 방법을 보려면 Windows Phone용 정적 TextBlock 컨트롤이 있는 예제 빌드를 참조하세요.


using System;
public class Example
{
    public static void Demo(System.Windows.Controls.TextBlock outputBlock)
    {

        // Creates and initializes a new integer array and a new Object array.
        int[] myIntArray = new int[5] { 1, 2, 3, 4, 5 };
        Object[] myObjArray = new Object[5] { 26, 27, 28, 29, 30 };

        // Prints the initial values of both arrays.
        outputBlock.Text += String.Format("Initially:") + "\n";
        outputBlock.Text += "integer array:";
        PrintValues(outputBlock, myIntArray);
        outputBlock.Text += "Object array: ";
        PrintValues(outputBlock, myObjArray);

        // Copies the first two elements from the integer array to the Object array.
        Array.Copy(myIntArray, myObjArray, 2);

        // Prints the values of the modified arrays.
        outputBlock.Text += String.Format("\nAfter copying the first two elements of the integer array to the Object array,") + "\n";
        outputBlock.Text += "integer array:";
        PrintValues(outputBlock, myIntArray);
        outputBlock.Text += "Object array: ";
        PrintValues(outputBlock, myObjArray);

        // Copies the last two elements from the Object array to the integer array.
        Array.Copy(myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, myIntArray.GetUpperBound(0) - 1, 2);

        // Prints the values of the modified arrays.
        outputBlock.Text += String.Format("\nAfter copying the last two elements of the Object array to the integer array,") + "\n";
        outputBlock.Text += "integer array:";
        PrintValues(outputBlock, myIntArray);
        outputBlock.Text += "Object array: ";
        PrintValues(outputBlock, myObjArray);
    }


    public static void PrintValues(System.Windows.Controls.TextBlock outputBlock, Object[] myArr)
    {
        foreach (Object i in myArr)
        {
            outputBlock.Text += String.Format("   {0}", i);
        }
        outputBlock.Text += "\n";
    }

    public static void PrintValues(System.Windows.Controls.TextBlock outputBlock, int[] myArr)
    {
        foreach (int i in myArr)
        {
            outputBlock.Text += String.Format("   {0}", i);
        }
        outputBlock.Text += "\n";
    }
    /* 
    This code produces the following output.

    Initially,
    integer array:  1       2       3       4       5
    Object array:   26      27      28      29      30

    After copying the first two elements of the integer array to the Object array,
    integer array:  1       2       3       4       5
    Object array:   1       2       28      29      30

    After copying the last two elements of the Object array to the integer array,
    integer array:  1       2       3       29      30
    Object array:   1       2       28      29      30
    */
}



다음 코드 예제에서는 Array를 만들고 초기화한 다음 해당 속성 및 요소를 표시합니다.


public class Example2
{

    public static void Demo(System.Windows.Controls.TextBlock outputBlock)
    {
        // Creates and initializes a new three-dimensional Array of type Int32.
        Array myArr = Array.CreateInstance(typeof(Int32), 2, 3, 4);
        for (int i = myArr.GetLowerBound(0); i <= myArr.GetUpperBound(0); i++)
            for (int j = myArr.GetLowerBound(1); j <= myArr.GetUpperBound(1); j++)
                for (int k = myArr.GetLowerBound(2); k <= myArr.GetUpperBound(2); k++)
                {
                    myArr.SetValue((i * 100) + (j * 10) + k, i, j, k);
                }

        // Displays the properties of the Array.
        outputBlock.Text += String.Format("The Array has {0} dimension(s) and a total of {1} elements.", myArr.Rank, myArr.Length) + "\n";
        outputBlock.Text += "  Length  Lower  Upper" + "\n";
        for (int i = 0; i < myArr.Rank; i++)
        {
            outputBlock.Text += String.Format("{0}:  {1}", i, myArr.GetLength(i));
            outputBlock.Text += String.Format("  {0}  {1}", myArr.GetLowerBound(i), myArr.GetUpperBound(i)) + "\n";
        }

        // Displays the contents of the Array.
        outputBlock.Text += "The Array contains the following values:" + "\n";
        PrintValues(outputBlock, myArr);
    }


    public static void PrintValues(System.Windows.Controls.TextBlock outputBlock, Array myArr)
    {
        System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
        int i = 0;
        int cols = myArr.GetLength(myArr.Rank - 1);
        while (myEnumerator.MoveNext())
        {
            if (i < cols)
            {
                i++;
            }
            else
            {
                outputBlock.Text += "\n";
                i = 1;
            }
            outputBlock.Text += String.Format("   {0}", myEnumerator.Current);
        }
        outputBlock.Text += "\n";
    }
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식의 public static(Visual Basic의 경우 (Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

이 구현에서는 Array에 대해 동기화되어 스레드로부터 안전하게 보호되는 래퍼를 제공하지 않지만 Array를 기반으로 하는 .NET Framework 클래스에서는 SyncRoot 속성을 사용하여 해당 컬렉션의 자체 동기화 버전을 제공합니다.

컬렉션을 열거하는 프로시저는 기본적으로 스레드로부터 안전하지 않습니다. 컬렉션이 동기화되어 있을 때 다른 스레드에서 해당 컬렉션을 수정할 수 있으므로 이렇게 되면 열거자에서 예외가 발생합니다. 열거하는 동안 스레드로부터 안전을 보장하려면 전체 열거를 수행하는 동안 컬렉션을 잠그거나 다른 스레드에서 변경된 내용 때문에 발생한 예외를 catch하면 됩니다.

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

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