gpt4 book ai didi

c# - StringBuilder - 是否应该仅使用 Append 和 AppendLine 而无需在参数中组合字符串?

转载 作者:行者123 更新时间:2023-11-30 21:30:48 24 4
gpt4 key购买 nike

我已经开始使用 StringBuilder,因为我听说它在输出字符串方面更加优化。

我的问题是关于 + 的使用,因为字符串是不可变的,当您将它们加在一起时,它会分配一个新字符串。

如果我在 StringBuilder.Append 函数的参数中使用此运算符,我假设它基本上具有相同的开销。

例如:

string animal1 = "dog";
string animal2 = "cat";

stringBuilder.Append("Today I saw a " + animal1 + " and " + animal2);

我的猜测是这可以将这些文本连接在一起分配内存。

我认为更有效(尽管冗长)的方法是:

stringBuilder.Append("Today I saw a");
stringBuilder.Append(animal1);
stringBuilder.Append(" and ");
stringBuilder.Append(animal2);

这是正确的吗?

最佳答案

你在第二个例子中有一个错误,因为你错过了“Today I saw a”和 animal1 之间的空格。除非您以过度的方式(在具有多次迭代的循环中)执行此操作,否则您可能会发现没有可测量的差异,因此您最好的选择可能是提高可读性。

$"Today I saw a {animal1} and a {animal2}"

是的,我也在第二只动物之前添加了一个 a :) 不过我不处理“an”的情况。

如果你想减少所有这些附加的冗长......你也可以选择使用 AppendFormat...

stringBuilder.AppendFormat("Today I saw a {0} and a {1}", animal1, animal2);

关于c# - StringBuilder - 是否应该仅使用 Append 和 AppendLine 而无需在参数中组合字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53958066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com