C# 字符串操作中 + 和 stringbulilder 的相同和区别

googlegis 2008-03-13 11:04:12
在 转载 flyinggis 的文章ArcGIS server学习 三种有一个查询条件的就是在 txtquery 里面写上 "Name Like '%号%'",我想把它改成直接在txtquery中输入名字,用字符串来表示查询条件:

原文是这样的, 在txtquery 中输入 Name Like '%号%' , spatialfilter.WhereClause = txtQuery.Text;

我后来改成 在txtquery中输入 号 在代码中这样写:spatialfilter.WhereClause = "Name Like '%" +txtQuery.Text +"% '";可是却始终没有结果显示,这本来是一个查询图元并高亮显示的代码,直接写 Name Like '%号%' ,能显示结果,写成 "Name Like '%" +txtQuery.Text +"% '” 却不能显示,一直试了很多次都不知道原因在哪里,后来想到换个函数看怎么样?

System.Text.StringBuilder sb = new System.Text.StringBuilder("");
sb.Append("Name Like '%");
sb.Append(txtQuery.Text);
sb.Append("%'");
spatialfilter.WhereClause = sb.ToString();

竟然能用了,呵呵,不知道什么原因?

C# 字符串操作中 + 和 stringbulilder 的相同和区别到底是什么呢? 什么时候可以通用,什么时候不能通用呢?还望高手指点啊。


...全文
101 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamXiaMi 2008-03-13
  • 打赏
  • 举报
回复
一个是建立新的引用,令一个是在数组溢出时才建立新的~

比如说
string x = "hello world !";
其实就是
char[] x = new char[13]{'h','e'.....}; //后面意思意思~

x += "?";
int len = char.length + ("?").length;
char[] x = new char[len]{'h','e'.....,'?'};
应该差不多是这个意思~~


而StringBulider是建立一个你规定或者默认(默认好像是54)的数组,然后添加字符进去~如果长度溢出,则自动填充你规定的长度,填充长度就是建立新的引用!
就是每次StringBuilder不是每次都建立新的引用~所以效率高点~
wuhongyao3 2008-03-13
  • 打赏
  • 举报
回复
貌似
string + 的时候 好像是声明了很多string变量
而builder只是操作原来的变量

个人理解
期待高手
wuhongyao3 2008-03-13
  • 打赏
  • 举报
回复
效率问题吧
我面试的时候 就被问到了这个问题
yeqingit 2008-03-13
  • 打赏
  • 举报
回复
StringBuilder是对底层类型的直接操作,string类型的变量一旦创建了字符串对象就无法修改,string类型的修改操作实际是创建副本操作的,所以效率低。
b哈利路亚d 2008-03-13
  • 打赏
  • 举报
回复
正常应该只是效率上有区别,如果执行5000次字符串连接
就能看出sb速度上的优势,别的应该没什么不同。
你加()试试。
访问真八字排盘系统介绍: 1、八字排盘 八字排盘是将年月日时按照天干地支的形式进行排列,一个时间单位代表了一个柱。八字由年柱、月柱、日柱和时柱共四个柱组成,也被称为四柱八字。八字学基于国阴阳五行、天干地支与刑冲克害、以及民间盲派的神煞论等方式,进一步预测爱情顺遂、工作高低、姻缘好坏、财富高低、学业成就、身体健康等事的学问。 八字排盘由以下元素组合:年月日时四柱、大运干支、胎元 、流年干支、十神、地势、神煞等。生辰八字不只是把干支历计算出来,而还要遵守月令、节令的强弱,时辰的阴阳变化进行校正。排盘分析,就是根据出生者的性别、天干地支的阴阳五行关系、进一步推算出来的一套方法论,给预测者做人生吉凶的参考数据,在未来事业、财运、婚姻、家庭等问题时,能做出风险较低的决策。 八字排盘怎么看 八字排盘由年、月、日、时四柱组成,每柱包含一个天干和一个地支,共八个字。年柱代表出生的年份,月柱代表出生的月份,日柱代表出生的日期,时柱则代表出生的时辰。每个柱的干支组合都会对个人的命运产生影响。天干地支旁边标注的正财、偏财、偏印、正印、比肩、劫财、食神、伤官、正官、七杀等,称为十神。 2、八字排盘软件介绍 我们是腾讯云市场金牌合作伙伴,广州正规软件开发公司,开发的八字排盘系统数据最全面精准,我们八字排盘采用最精确的排盘程序,而且运用“真太阳时”,进行更精确的时间划分。大家都知道我们使用的北京时间,是统一规定的标准时间。而八字排盘需要相对于太阳方位的天文时间,即平太阳时。我们国家地大物博,北京时间19时,哈尔滨已经夜幕降临,而新疆却还是太阳高挂,这时哈尔滨的天文时间可能在20:00以后,而新疆的天文时间可能在16时以前。北京时间是东经120度经线的平太阳时,如果您出生地的经度与北京时间所处的经度差异较大,或者处于单数时间点的前后,比如6点差一刻,8点,10点15分等

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧