CharEnumerator 클래스

정의

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

예제

다음 예제에서는 클래스를 사용 하 여 CharEnumerator 문자열의 개별 문자를 열거 합니다.The following example uses the CharEnumerator class to enumerate the individual characters in a string. 메서드를 호출 하 여 개체를 인스턴스화하고 CharEnumerator String.GetEnumerator , 메서드를 호출 하 여 한 문자에서 다음 문자로 이동 하 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

설명

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. Graphemes (즉, 하나 이상의 combiding 문자가 뒤에 오는 문자) 또는 서로게이트 쌍 (유니코드 기본 다국어 평면 외부 문자)을 단일 문자로 간주 하지 않습니다.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.

에 대 한 public 생성자가 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.

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메서드는 인덱스를 1 씩 증가 하므로 첫 번째 및 이후의 문자는 차례로 액세스 됩니다.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

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

메서드

Clone()

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

Dispose()

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

Equals(Object)

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

(다음에서 상속됨 Object)
GetHashCode()

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

(다음에서 상속됨 Object)
GetType()

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

(다음에서 상속됨 Object)
MemberwiseClone()

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

(다음에서 상속됨 Object)
MoveNext()

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

Reset()

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

ToString()

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

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IDisposable.Dispose()

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

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.

적용 대상

추가 정보