解决方案
1.第一种方法是循环,这种方法快速简单,但灵活性不如第二种方法。 如何使用它:
string testStr = "abc123"; foreach (char c in testStr) { Console.WriteLine(c.ToString()); }
2.第二种方法使用for循环而不是循环来遍历字符串。 例如:
string testStr = "abc123"; for (int counter = 0; counter < testStr.Length; counter++) { Console.WriteLine(testStr[counter]); }
讨论
循环更简单,因此更不容易出错,但灵活性较差。 相比之下,for 循环稍微复杂一些,但更灵活。
for循环方法使用字符串变量的索引器来获取循环索引指示的位置处的字符。 使用此循环机制时,请注意不要超出字符串数组的边界。
for 循环足够灵活,可以改变它迭代字符串中字符的方式。 例如,您可以通过简单地更改其初始值设定项和条件表达式来快速修改 for 循环,使其在字符串中的特定位置开始和结束。
可以通过修改迭代器表达式来跳过一些字符,使变量自增1以上。还可以修改for循环表达式,以逆序遍历字符串,如下:
for (int counter = testStr.Length - 1; counter >= 0; counter--) { Console.WriteLine(testStr[counter].ToString()); }
注意:
编译器最适合使用循环来迭代向量数组——它从 0 开始并且只有一维。 将循环转换为另一种循环类型(例如 for 循环)可能不会带来任何显着的性能改进。
所有这些方法都是使用 / 选项进行编译的。 使用 / 标志通常会使编译的代码更小,而不是更快。 代码越小,从磁盘加载的速度就越快,并且动态编译的速度也就越快。