System.CharEnumerator 类

方法描述

支持循环访问 String 对象并读取它的各个字符。 此类不能被继承。

语法定义(C# System.CharEnumerator 类 的用法)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class CharEnumerator : ICloneable, 
	IEnumerator, IEnumerator, IDisposable

构造函数

构造函数名称 构造函数描述

成员/方法

方法名称 方法描述
Clone 创建当前 CharEnumerator 对象的副本。
Dispose 释放由 CharEnumerator 类的当前实例占用的所有资源。
Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetType 获取当前实例的 Type。 (继承自 Object。)
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
MoveNext 递增当前 CharEnumerator 对象的内部索引使其指向枚举的字符串的下一个字符。
Reset 将索引初始化为逻辑上位于枚举字符串的第一个字符之前的位置。
ToString 返回表示当前对象的字符串。 (继承自 Object。)

提示和注释

CharEnumerator 提供对被引用的 String 对象中的字符进行只读访问。 例如,Microsoft Visual Basic 和 C# 编程语言中的 foreach 语句(它循环访问集合元素)从 String 对象中检索 CharEnumerator,以便循环访问该对象中的字符。

CharEnumerator 没有公共构造函数。 而是调用 String 对象的 GetEnumerator 方法以获取被初始化为引用该字符串的 CharEnumerator。

CharEnumerator 维护一个由 CharEnumerator 引用的字符串中的字符的内部索引。 当该索引引用逻辑上位于字符串中第一个字符之前或最后一个字符之后的字符位置时,该索引的状态是无效的;当该索引引用字符串中的字符时,它是有效的。 该索引被初始化为逻辑上位于第一个字符之前的位置,当迭代完成后则被设置为位于最后一个字符之后的位置。 如果尝试在该索引无效时访问字符,将发生异常。

MoveNext 方法将该索引递增 1,以便依次访问第一个字符以及后面的字符。 Reset 方法将该索引设置为逻辑上位于第一个字符之前的位置。 Current 属性检索当前由该索引引用的字符。 Clone 方法创建 CharEnumerator 的一个副本。

注意

一个或多个线程间的 CharEnumerator 的若干独立实例可以访问 String 的单个实例。 实现此类是为了支持 IEnumerator 接口。 有关使用枚举数的更多信息,请参见 IEnumerator 主题。

System.CharEnumerator 类例子

但请注意,通过使用 foreach(在 C# 中)或 For Each(在 Visual Basic 中)可以在某种程度上更直观地执行相同的操作,如下面的示例所示。

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

继承层次结构

System.Object

System.CharEnumerator

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。