你们中的任何人都知道什么会更好:
一个.获取一个字符串s,转换为char数组并循环遍历它,或者
湾 得到一个字符串s,循环它的子串(s.Substring(i, 1))?
任何提示非常感谢.
Hen*_*man 12
选项b),循环子串,是非常低效的.
最快的方法是
c)使用只读索引器属性直接遍历字符串字符:
for (int i = 0; i < s.Length; i++) { char c = s[i]; ... }
Run Code Online (Sandbox Code Playgroud)
或者,基于IEnumerable<char>界面:
foreach(char c in s) { ... }
Run Code Online (Sandbox Code Playgroud)
(A)效率更高.但为什么不这样做:
foreach (char c in s)
Run Code Online (Sandbox Code Playgroud)
一些快速基准测试表明,这是一个微不足道的(差异<2%)效率低于
for(int i = 0; i < s.Length; ++i)
char c = s[i];
Run Code Online (Sandbox Code Playgroud)
但我的观点是,前者的可读性使其优于除了时间最关键的代码之外的任何东西.