首页 / C# / 如何在C#中使用字符串正常工作?
如何在C#中使用字符串正常工作?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在C#中使用字符串正常工作?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1636字,纯文字阅读大概需要3分钟。
内容图文
![如何在C#中使用字符串正常工作?](/upload/InfoBanner/zyjiaocheng/759/09231cbcd70742858638f61bdd6f714f.jpg)
我知道C#中有一个关于字符串的规则说:
When we create a textual string of type string, we can never change its value! When putting different value for a string variable thje first string will stay in memory and variable (which is kind of reference type) just gets the address of the new string.
所以做这样的事情:
string a = "aaa";
a = a.Trim(); // Creates a new string
不推荐.
但是,如果我需要根据用户偏好对字符串执行某些操作,如下所示:
string a = "aaa";
if (doTrim)
a = a.Trim();
if (doSubstring)
a = a.Substring(...);
etc...
如果不在每个动作上创建新的字符串,我怎么能这样做呢?
我想通过ref将字符串发送到函数,如下所示:
void DoTrim(ref string value)
{
value = value.Trim(); // also creates new string
}
但这也创造了一个新的字符串……
有人可以告诉我,如果有办法做到这一点而不浪费每个动作的记忆?
解决方法:
你是正确的,因为你正在执行的操作是创建新字符串,而不是改变单个字符串.
你错了,因为这通常是有问题的,或者是要避免的.
如果你的字符串是成千上万的字符,那么肯定,复制所有这些只是为了删除一些前导空格,或者在它的末尾添加几个字符(特别是在循环中),实际上可以是问题.
如果你的字符串不大,并且你没有对字符串执行很多(数千个)操作,那么你几乎肯定没有问题.
现在有一些上下文,通常很少见,会遇到字符串操作的问题.可能最常见的有问题的上下文是将一串字符串附加在一起,因为这样做意味着复制每个新添加的所有先前附加的数据.如果您处于这种情况,请考虑使用类似StringBuilder或单个调用string.Concat(接受一系列字符串连接的重载)来执行此操作.
其他情况是,例如,处理DNA链的程序.它们通常会捕获数百万个字符串,并创建数十万字符长的字符串.因此,使用标准C#字符串操作会导致大量不必要的复制.编写此类程序的人最终会创建可以表示另一个字符串的子字符串的对象,而无需复制数据,而是使用偏移量引用现有字符串的基础数据源.
内容总结
以上是互联网集市为您收集整理的如何在C#中使用字符串正常工作?全部内容,希望文章能够帮你解决如何在C#中使用字符串正常工作?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。