之前一直認為for (int i = 0, h = arr.count; i < h; i++)
和for (int i = 0; i < arr.count; i++)
兩種寫法,在c#裡應該是差不多的,今天突然有人問,就寫了個程式測試了一下,結果出乎我的意料
如果arr是list,前者的效率比後者高大約一倍,如果arr是string,兩者效率基本差不多
測試**:
int tnum = 100000; //新增或查詢的次數
int outnum = 10; //
外層迴圈次數
list
arr = new list();
for(int i=0;i)
arr.add(i.tostring());
string arr2 = new
string
[tnum];
for(int j=0;j)
watch.stop();
console.writeline(msg + "
耗時:" +watch.elapsedticks.tostring());
msg = "
.count ";
watch.reset();
watch.start();
for (int i = 0; i < arr.count; i++)
watch.stop();
console.writeline(msg + "
耗時:" +watch.elapsedticks.tostring());
msg = "
length ";
watch.reset();
watch.start();
for (int i = 0; i < arr2.length; i++)
watch.stop();
console.writeline(msg + "
耗時:" +watch.elapsedticks.tostring());
}
發這個帖的意思是,要養成良好的**習慣,
當然,這個不是影響**效能的重點,只是平時寫**時,順手就寫上效率較高的**,會更好。
類似的提公升效率的地方,還有拼接字串時,值型別一定要加上tostring()
比如用:string a = "aa" + 123.tostring();
而不是用string a = "aa" + 123
再比如:
字串比較或查詢,**上stringcomparison.ordinal引數如果要忽略大小寫,請使用stringcomparison.ordinalignorecase
比如要使用:str.indexof("abc", stringcomparison.ordinal)
而不是使用:str.indexof("abc"),這個等於str.indexof(value,stringcomparison.currentculture)
stringcomparison.currentculture:使用區域敏感排序規則和當前區域比較字串
stringcomparison.ordinal:使用序號排序規則比較字串
再帖乙個好習慣:
hashtable、dictionary、sortedlist、sorteddictionary等字典使用 a、使用字典的trygetvalue方法,如:
dictionaryabc;
string a;
if(!abc.trygetvalue(key, out a))else
而不要用下面的**,因為下面的**重複查詢了2次key:
if(!abc.containkeys(key))
else
b、刪除字典的key時,直接使用remove方法,不要事先判斷,比如:
dictionaryabc;
if(abc.remove(key))else
c、插入元素時,直接使用this[key] = value,如:
abc[key] = value;// 注意需求,如果允許覆蓋才可以用
而不需要:if(!abc.containskey(key))abc.add(key, value);
反編譯**,可以看到add和this是呼叫同乙個方法的
**:
思考一下 的結果
看到這個題的第一眼,我想都沒寫直接就是false,不就是乙個取反嗎,還比較啥 ok,這個時候已經掉到坑里去了,我太小瞧它了!這道題有兩個點 下面我們看看分析 首先,的優先順序大於 所以會先計算 而其實是乙個引用型別,這裡又涉及到了對引用型別轉化為布林值。轉化為布林值為true 然後取反後為false...
分享一下SEO技巧和方法
現在很多朋友對seo的技巧掌握不是很好,而且都會有乙個迷茫期,所謂迷茫期就是說不知道怎麼去優化,由於對技巧的掌握不是很純熟,所以導致進入迷茫期,說句實話,如果有人進入迷茫期的話,最好的辦法就是多做總結多動手操作,只有這樣你的才能自己脫離迷茫期,如果自己實在找不到方法的話,那麼本人建議你可以多看看相關...
分享一下應聘經歷
今天去參加了一次校園招聘,跟大家分享一下我的應聘經歷。早上七點,去公教自習,大部分都寫著考研 佔座,一路走來沒找到乙個合適的位置。後來看到乙個教室是開著的,沒有人,在裡面上自習。八點鐘左右,來了幾個人,帶著大包小包的,邊走邊在討論是不是走錯教室了,後來以小夥子開啟電腦看了一下,大概是核對了一下地點,...