c# - 字符串操作的更好选择 - .NET

标签 c# string

我正在为一个 C# 项目处理大量 string 数据。我对应该使用哪种方法来操作我的 string 数据感到困惑。

第一种方法:

StringBuilder myString = new StringBuilder().Append(' ', 1024);

while(someString[++counter] != someChar)
    myString[i++] += someString[counter];


第二种方法:

String myString = new String();

int i = counter;
while(soumeString[++counter] != someChar);
myString = someString.SubString(i, counter - i);

两者中哪一个会更快(更高效)?考虑到我正在使用的字符串很大。

字符串已经在 RAM 中。 字符串的大小可以在 32MB-1GB 之间变化。

最佳答案

您应该使用 IndexOf 而不是在循环中对单个字符进行操作,并将整个字符串 block 添加到结果中:

StringBuilder myString = new StringBuilder();
int pos = someString.IndexOf(someChar, counter);
myString.Append(someString.SubString(counter, pos));

关于c# - 字符串操作的更好选择 - .NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12113044/

相关文章:

string - php 俄语字符的不区分大小写比较

c# - 微服务架构 CQRS

c# - 从BackgroundWorker返回一个对象

PHP "is_numeric"接受 "E"作为数字

c# - 我怎样才能保护字符串,例如C#

c - 在C中将字符串拆分为不带分隔符的字符串数组

C# 将 XML 混合内容中的文本反序列化为自定义对象?

c# - 获取IPEndPoint的动态分配端口

c# - Button.PerformClick 有什么作用?

javascript - 替换 typescript 中字符串中的所有字符实例?