猿问

int类型转换成string类型,转换失败!求解释~求解释~

代码如下: 

  object[] sendData = new object[1024 * 1024];      

  string sendDatastr = "";     

      string c = "";
      for (int i = 0; i <1024*1024; i++)
      {
          sendDatastr += (sendData[i] as string);();//sendData[i]中包含1M个uint类型数据

          // c = (string)(sendData[i]);//注意:若是加入这句,就会显示强制转换uint到string失败
           //sendDatastr+=  sendData[i].Convert.ToString();//这个是正确,但由于效率低的不能接受

    }

  return sendDatastr;

问题:运行结果是sendDatastr=“ ”,也就是说 (sendData[i] as string)是失败的,为什么呢?求解释啊~

喵喔喔
浏览 458回答 10
10回答

GCT1015

用.ToString方法,同时用StringBuilder.Append代替string的相加操作。

茅侃侃

既然这么看重效率,为什么uint类型数据用object数组(引起额外的装箱操作)? 既然这么看重效率,为什么要把uint类型数据再全部转换为string?  

慕盖茨4494581

是滴~您说的很对,我也刚试过了,哈哈~谢谢

慕的地10843

@博客园的初学者: StringBuilder也要分情况使用。一般来说循环小于500次的时候,字符串直接相加反而是快的。你可以google关键字“Performance considerations for strings in C#” 顺便说一句,问题解决了的话就把帖结了吧

慕田峪9158850

需要设置一下StringBuilder的初始容量(大于或等于实际写入的字符数),这样效率会更高
随时随地看视频慕课网APP
我要回答