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