C# 利用StringBuilder提升字符串拼接性能的小例子
用Stopwatch分段監(jiān)控了一下,發(fā)現(xiàn)耗時(shí)最多的函數(shù)是SaveToExcel
此函數(shù)中遍列所有數(shù)據(jù)行,通過Replace替換標(biāo)簽生成Excel行,然后將行數(shù)據(jù)累加賦值到一個(gè)字符串
string excelString = "";
foreach(var item in list){
excelString += string.Format("<row>....{0}</row>",list.Title);
}
看到這。。立馬想起無數(shù)先烈們的警告、字符串拼接的內(nèi)存操作原理等等。于是大手一揮,代碼全刪,改為如下形式
string excelString = new StringBuilder();
foreach(var item in list){
excelString.AppendFormat("<row>......{0}</row>",list.Title);
}
再次測(cè)試,效率立馬提升了幾十倍。之前8000行需要30s,現(xiàn)在只需要2s
相關(guān)文章
用Newtonsoft將json串轉(zhuǎn)為對(duì)象的方法(詳解)
下面小編就為大家?guī)硪黄肗ewtonsoft將json串轉(zhuǎn)為對(duì)象的方法(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04C#實(shí)現(xiàn)從多列的DataTable里取需要的幾列
這篇文章主要介紹了C#實(shí)現(xiàn)從多列的DataTable里取需要的幾列,涉及C#針對(duì)DataTable操作的相關(guān)技巧,需要的朋友可以參考下2016-03-03C#正則表達(dá)式(Regex類)用法實(shí)例總結(jié)
正則表達(dá)式的主要作用是驗(yàn)證字符串的值是否滿足一定的規(guī)則,在頁面輸入數(shù)據(jù)驗(yàn)證方面的應(yīng)用比較多,下面這篇文章主要給大家介紹了關(guān)于C#正則表達(dá)式(Regex類)用法的相關(guān)資料,需要的朋友可以參考下2022-08-08C#使用smtp發(fā)送帶附件的郵件實(shí)現(xiàn)方法
這篇文章主要介紹了C#使用smtp發(fā)送帶附件的郵件實(shí)現(xiàn)方法,可直接將string類型結(jié)果保存為附件,實(shí)例中備有相應(yīng)的注釋便于理解,需要的朋友可以參考下2014-11-11C#使用Socket實(shí)現(xiàn)本地多人聊天室
這篇文章主要為大家詳細(xì)介紹了C#使用Socket實(shí)現(xiàn)本地多人聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Winform啟動(dòng)另一個(gè)項(xiàng)目傳值的方法
這篇文章主要介紹了Winform啟動(dòng)另一個(gè)項(xiàng)目傳值的方法,通過調(diào)用進(jìn)程來實(shí)現(xiàn)項(xiàng)目之間的傳值,需要的朋友可以參考下2014-11-11