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