关于C#中遍历字符串中的每一个字符的方法

解决方案

C#提供了两个方法用于遍历字符串。数组

1.第一个方法是foreach循环,这个方法快速且容易,可是与第二个方法相比它不太灵活。其使用方法以下:性能

string testStr = "abc123";
foreach (char c in testStr)
{
  Console.WriteLine(c.ToString());
}

 

2.第二个方法使用for循环而不是foreach循环来遍历字符串。例如:spa

string testStr = "abc123";
for (int counter = 0; counter < testStr.Length; counter++)
{
   Console.WriteLine(testStr[counter]);
}

 

讨论

foreach循环更简单,所以不太容易出错,但其灵活性较差。与之相反,for循环稍微复杂一点,但其灵活性较高。code

for循环这种方法使用字符串变量testStr的索引器来获取经过counter循环索引所指示位置上的字符。在使用这种循环机制时,必定要当心不要越出字符串数组的边界。blog

for循环很灵活,足以改变遍历字符串中的字符的方式。例如,经过简单改变for循环的初始化器和条件表达式能够快速修改循环,使之开始和结束于字符串中的特定位置。索引

经过修改迭代器表达式使counter变量的递增数量大于1,能够跳过一些字符。还能够修改for循环表达式以逆序遍历字符串,以下所示:字符串

for (int counter = testStr.Length - 1; counter >= 0; counter--)
{
    Console.WriteLine(testStr[counter].ToString());
} 

 

注意: 

编译器会最恰当地使用foreach循环来遍历一个向量数组 -- 它开始于0,而且只有一维。把foreach循环转换为另外一种循环类型(好比for循环)可能不会致使任何显著的性能改进。编译器

全部这些方法都是使用/optimize编译器选项编译的。使用/optimize标志一般将使得编译过的代码尺寸更小,而不会使之变得更快。代码越小,从磁盘加载它的速度就会更快,而且实时编译它的速度也会更快。string

相关文章
相关标签/搜索