c# - 通过 [] 运算符访问字符串中的 char 是更快还是通过 [] 运算符访问 char[] 中的 char 更快?

标签 c# string performance

我有一个简单的问题。我正在和一个巨大的人一起工作 string在 C# 中,我反复浏览它并通过 [] 访问单个字符运算符(operator)。转string是不是比较快?成char[]并使用 [] char 上的运算符(operator)阵列还是我的方法更快?还是两者都一样?我希望我的程序快速发展。

最佳答案

如果你需要绝对最快的实现,那么你可以降到 unsafe并使用指针:

string s = ...
int len = s.Length;
fixed (char* ptr = s)
{
   // talk to ptr[0] etc; DO NOT go outside of ptr[0] <---> ptr[len-1]
}

然后避免范围检查 但是 :
  • 需要 unsafe
  • 越界就是罪魁祸首
  • 关于c# - 通过 [] 运算符访问字符串中的 char 是更快还是通过 [] 运算符访问 char[] 中的 char 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13179554/

    相关文章:

    c# - x64 上的文件时间

    c# - 无法将 void 转换为 ICommand

    Javascript - 字符串中的脚本标记时出错

    c# - 在 c# 中的 asp.net 标签前添加空格

    c# - 将对象格式化为主题和正文的通用方法?

    javascript - 在 Javascript 中使用正则表达式提取姓名和电子邮件

    Python 任意数字转非科学字符串

    java - JNI 什么时候需要复制原始类型的数组?

    performance - 在没有优化的情况下添加冗余分配可以加快代码的速度

    javascript - 为什么 Facebook 按钮仅在所有图像加载后才出现?