CharEnumerator CharEnumerator CharEnumerator CharEnumerator Class

정의

String 개체의 반복 및 개별 문자 읽기를 지원합니다.Supports iterating over a String object and reading its individual characters. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class CharEnumerator sealed : ICloneable, System::Collections::Generic::IEnumerator<char>
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class CharEnumerator : ICloneable, System.Collections.Generic.IEnumerator<char>
type CharEnumerator = class
    interface IEnumerator
    interface ICloneable
    interface IEnumerator<char>
    interface IDisposable
Public NotInheritable Class CharEnumerator
Implements ICloneable, IEnumerator(Of Char)
상속
CharEnumeratorCharEnumeratorCharEnumeratorCharEnumerator
특성
구현

예제

다음 예제에서는 CharEnumerator 문자열의 개별 문자를 열거 하는 클래스입니다.The following example uses the CharEnumerator class to enumerate the individual characters in a string. 인스턴스화할를 CharEnumerator 호출 하 여 개체를 String.GetEnumerator 메서드를 이동 1 자에서 다음을 호출 하 여는 MoveNext 메서드를의 값을 검색 하 여 현재 문자를 표시 하 고는 Current 속성입니다.It instantiates a CharEnumerator object by calling the String.GetEnumerator method, moves from one character to the next by calling the MoveNext method, and displays the current character by retrieving the value of the Current property.

String ^ title = "A Tale of Two Cities";
CharEnumerator ^ chEnum = title->GetEnumerator();
int ctr = 1;
String ^ outputLine1 = nullptr;
String ^ outputLine2 = nullptr;
String ^ outputLine3 = nullptr; 

while (chEnum->MoveNext())
{
   outputLine1 += ctr < 10 || ctr % 10 != 0 ? "  " : (ctr / 10) + " ";
   outputLine2 += (ctr % 10) + " ";
   outputLine3 += chEnum->Current + " ";
   ctr++;
}

Console::WriteLine("The length of the string is {0} characters:", 
                  title->Length);
Console::WriteLine(outputLine1);
Console::WriteLine(outputLine2);    
Console::WriteLine(outputLine3);
// The example displays the following output to the console:      
//       The length of the string is 20 characters:
//                         1                   2
//       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
//       A   T a l e   o f   T w o   C i t i e s
string title = "A Tale of Two Cities";
CharEnumerator chEnum = title.GetEnumerator();
int ctr = 1;
string outputLine1 = null;
string outputLine2 = null;
string outputLine3 = null; 

while (chEnum.MoveNext())
{
   outputLine1 += ctr < 10 || ctr % 10 != 0 ? "  " : (ctr / 10) + " ";
   outputLine2 += (ctr % 10) + " ";
   outputLine3 += chEnum.Current + " ";
   ctr++;
}

Console.WriteLine("The length of the string is {0} characters:", 
                  title.Length);
Console.WriteLine(outputLine1);
Console.WriteLine(outputLine2);    
Console.WriteLine(outputLine3);
// The example displays the following output to the console:      
//       The length of the string is 20 characters:
//                         1                   2
//       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
//       A   T a l e   o f   T w o   C i t i e s
Dim title As String = "A Tale of Two Cities"
Dim chEnum As CharEnumerator = title.GetEnumerator()
Dim ctr As Integer = 1
Dim outputLine1, outputLine2, outputLine3 As String 

Do While chEnum.MoveNext()
   outputLine1 += CStr(iif(ctr < 10 Or ctr Mod 10 <> 0, "  ", CStr(ctr \ 10) + " ")) 
   outputLine2 += (ctr Mod 10)& " "
   outputLine3 += chEnum.Current & " "
   ctr += 1
Loop

Console.WriteLine("The length of the string is {0} characters:", _
                  title.Length)
Console.WriteLine(outputLine1)
Console.WriteLine(outputLine2)    
Console.WriteLine(outputLine3)
' The example displays the following output to the console:      
'       The length of the string is 20 characters:
'                         1                   2
'       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
'       A   T a l e   o f   T w o   C i t i e s

단, 사용 하 여 동일한 작업을 좀 더 직관적으로 수행할 수 있는지 foreach (C#에서) 또는 For Each (Visual Basic의 경우) 다음 예제와 같이 보여 줍니다.Note, however, that the same operation can be performed somewhat more intuitively by using foreach (in C#) or For Each (in Visual Basic), as the following example shows.

String ^ title = "A Tale of Two Cities";
int ctr = 1;
String ^ outputLine1 = nullptr;
String ^ outputLine2 = nullptr;
String ^ outputLine3 = nullptr; 

for each (wchar_t ch in title)
{
   outputLine1 += ctr < 10 || ctr % 10 != 0 ? "  " : (ctr / 10) + " ";
   outputLine2 += (ctr % 10) + " ";
   outputLine3 += ch + " ";
   ctr++;
}

Console::WriteLine("The length of the string is {0} characters:", 
                  title->Length);
Console::WriteLine(outputLine1);
Console::WriteLine(outputLine2);    
Console::WriteLine(outputLine3);
// The example displays the following output to the console:      
//       The length of the string is 20 characters:
//                         1                   2
//       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
//       A   T a l e   o f   T w o   C i t i e s
string title = "A Tale of Two Cities";
int ctr = 1;
string outputLine1 = null;
string outputLine2 = null;
string outputLine3 = null; 

foreach (char ch in title)
{
   outputLine1 += ctr < 10 || ctr % 10 != 0 ? "  " : (ctr / 10) + " ";
   outputLine2 += (ctr % 10) + " ";
   outputLine3 += ch + " ";
   ctr++;
}

Console.WriteLine("The length of the string is {0} characters:", 
                  title.Length);
Console.WriteLine(outputLine1);
Console.WriteLine(outputLine2);    
Console.WriteLine(outputLine3);
// The example displays the following output to the console:      
//       The length of the string is 20 characters:
//                         1                   2
//       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
//       A   T a l e   o f   T w o   C i t i e s
Dim title As String = "A Tale of Two Cities"
Dim ctr As Integer = 1
Dim outputLine1, outputLine2, outputLine3 As String 

For Each ch As Char In title
   outputLine1 += CStr(iif(ctr < 10 Or ctr Mod 10 <> 0, "  ", CStr(ctr \ 10) + " ")) 
   outputLine2 += (ctr Mod 10)& " "
   outputLine3 += ch & " "
   ctr += 1
Next

Console.WriteLine("The length of the string is {0} characters:", _
                  title.Length)
Console.WriteLine(outputLine1)
Console.WriteLine(outputLine2)    
Console.WriteLine(outputLine3)
' The example displays the following output to the console:      
'       The length of the string is 20 characters:
'                         1                   2
'       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
'       A   T a l e   o f   T w o   C i t i e s

설명

A CharEnumerator 의 참조 된 문자에 대 한 읽기 전용 액세스를 제공 String 개체입니다.A CharEnumerator provides read-only access to the characters in a referenced String object. 예를 들어를 foreach 컬렉션의 요소를 반복 하는 Microsoft Visual Basic 및 C# 프로그래밍 언어의 문은 검색을 CharEnumerator 에서 String 개체는 문자에 대 한 반복 하려면 개체입니다.For example, the foreach statement of the Microsoft Visual Basic and C# programming languages, which iterates through the elements of a collection, retrieves a CharEnumerator from a String object in order to iterate through the characters in that object.

중요

합니다 CharEnumerator 클래스에는 개별 16 비트 열거 Char 인스턴스.The CharEnumerator class enumerates individual 16-bit Char instances. 제자 (즉, 하나 이상의 combiding 문자 뒤에 문자)를 고려 하지 않습니다 (즉, 밖의 문자 유니코드 Basic Multilingual Plane) 쌍을 단일 문자로 서로게이트입니다.It does not consider graphemes (that is, a character followed by one or more combiding characters) or surrogate pairs (that is, characters outside the Unicode Basic Multilingual Plane) as single characters. 이러한 종류의 문자를 하나의 단위로 처리 하는 열거자를 사용 합니다 StringInfo 클래스입니다.For an enumerator that handles these types of characters as a single unit, use the StringInfo class.

에 대 한 없는 공용 생성자가 CharEnumerator입니다.There is no public constructor for CharEnumerator. 대신, 호출을 String 개체의 GetEnumerator 메서드를 CharEnumerator 문자열을 참조 하도록 초기화 된 합니다.Instead, call a String object's GetEnumerator method to obtain a CharEnumerator that is initialized to reference the string.

A CharEnumerator 문자열의 문자에 대 한 내부 인덱스 유지 관리는 CharEnumerator 참조 합니다.A CharEnumerator maintains an internal index to the characters in the string the CharEnumerator references. 인덱스의 상태가 유효 하 고 문자열에서 문자 위치 논리적으로 첫 번째 문자 앞 또는 마지막 문자 뒤 참조 하는 경우에 잘못 된 문자열 내에서 문자를 참조 하는 경우.The state of the index is invalid when it references a character position logically before the first character or after the last character in the string, and valid when it references a character within the string. 인덱스 첫 문자를 논리적으로 앞으로 초기화 되 고 반복이 완료 되 면 마지막 문자 뒤 위치로 설정 합니다.The index is initialized to a position logically before the first character, and is set to a position after the last character when the iteration is complete. 인덱스는 유효한 문자에 액세스 하려고 하면 예외가 throw 됩니다.An exception is thrown if you attempt to access a character while the index is invalid.

MoveNext 메서드 인덱스를 하나 증가 시킴을 첫 번째 및 이후의 문자에 액세스 하도록 합니다.The MoveNext method increments the index by one, so the first and subsequent characters are accessed in turn. Reset 메서드를 첫 번째 문자 앞으로 논리적으로 인덱스를 설정 합니다.The Reset method sets the index to a position logically before the first character. Current 속성 인덱스에서 현재 참조 하는 문자를 검색 합니다.The Current property retrieves the character currently referenced by index. 합니다 Clone 메서드의 복사본을 만듭니다는 CharEnumerator합니다.The Clone method creates a copy of the CharEnumerator.

참고

여러 독립 된 인스턴스 CharEnumerator 하나 이상의 스레드에서 액세스할 수의 단일 인스턴스로 String합니다.Several independent instances of CharEnumerator across one or more threads can have access to a single instance of String. 지원 하기 위해이 클래스는 구현 된 IEnumerator 인터페이스입니다.This class is implemented to support the IEnumerator interface. 열거자의 사용과 관련 된 자세한 내용은 참조는 IEnumerator 항목입니다.For more information regarding the use of an enumerator, see the IEnumerator topic.

속성

Current Current Current Current

CharEnumerator 개체에서 열거한 문자열의 현재 참조되는 문자를 가져옵니다.Gets the currently referenced character in the string enumerated by this CharEnumerator object.

메서드

Clone() Clone() Clone() Clone()

현재 CharEnumerator 개체의 복사본을 만듭니다.Creates a copy of the current CharEnumerator object.

Dispose() Dispose() Dispose() Dispose()

CharEnumerator 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of the CharEnumerator class.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
MoveNext() MoveNext() MoveNext() MoveNext()

현재 CharEnumerator 개체의 내부 인덱스를 열거된 문자열의 다음 문자로 증가시킵니다.Increments the internal index of the current CharEnumerator object to the next character of the enumerated string.

Reset() Reset() Reset() Reset()

인덱스를 논리적으로 열거형 문자열의 첫째 문자 앞으로 초기화합니다.Initializes the index to a position logically before the first character of the enumerated string.

ToString() ToString() ToString() ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(Inherited from Object)

명시적 인터페이스 구현

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

CharEnumerator 클래스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the CharEnumerator class.

IEnumerator.Current IEnumerator.Current IEnumerator.Current IEnumerator.Current

CharEnumerator 개체에서 열거한 문자열의 현재 참조되는 문자를 가져옵니다.Gets the currently referenced character in the string enumerated by this CharEnumerator object. 이 멤버에 대한 설명은 Current를 참조하십시오.For a description of this member, see Current.

적용 대상

추가 정보