本人對linq這東西有極大的興趣,很喜歡linq這種查詢語法。在看了晴天豬的 「《effective c#》讀書筆記——條目8:推薦使用查詢語法而不是迴圈文章後忍不住嘗試了一把。
1.生成接下來要使用的測試資料
12.使用迴圈,也就是「命令式」的//生成資料
2private
static listgetlist()311
return
vals1;
12 }
1 list vals =getlist();「命令式」也就是傳統的迴圈查詢23 stopwatch sw = new
stopwatch();
4sw.start();56
//用迴圈的方式對資料進行平方運算
7for (int i = 0; i < vals.count; i++)811
12//
迴圈的方式列印出結果
13foreach (var item in
vals)
1417
sw.stop();
18//
耗時19
long time =sw.elapsedticks;
20 console.writeline("
耗時:
" + time.tostring());
3.不使用迴圈,使用查詢語法,也就是「宣告式」的
1 stopwatch sw1 = new從上面給出的這兩個例子可以明顯看出「查詢語法」方式寫的**看著比較舒服吧,行數就比迴圈的少,呵呵,linq。**可讀性也比「命令式」的程式設計要好。stopwatch();
23 list vals1 =getlist();45
sw1.start();67
//使用查詢將列表中的資料執行平方操作8//
要使用plinq時,要在資料來源上呼叫 asparallel() 擴充套件方法來選擇使用 plinq
9var v = (from a in vals1 select a *a).asparallel();
1011
//對資料來源中的每個元素並行呼叫指定的操作
12//
遍歷資料來源並輸出每個元素
13 v.forall(a => console.write(a + "
"));
1415
sw1.stop();
16long time1 =sw1.elapsedticks;
17 console.writeline("
耗時:
" + time1.tostring());
測試截圖:
使用迴圈的:
使用查詢語法的:
雖然說資料每次生成的不一樣,計算的耗時可能也不同,但是迴圈的耗時為10145 而查詢語法的為132278,顯然不是乙個數量級的。
可以看出使用迴圈執行速度比使用查詢語法的速度要快,但是使用查詢語法寫出來的**可讀性比較高,較使用迴圈的容易理解。寫的不一定好也不一定全對,但我還會繼續往下學習,希望各位大蝦們提出意見或建議。
第乙個AWK程式的嘗試
為了統計api的訪問,需要讀取8個g的資料,所以學習了下文字處理神器,awk。簡單例項如下 以 t分割的文字 awk f t 獲取小時的函式 function gethours times awk 可分為三個部分 中間部分 表示對每行的處理,begin 表示每行處理之前的預處理,end 表示逐行處理...
我的第乙個程式
我的第乙個vc程式終於寫完了,花了2周,之前從沒有用vc寫過程式,也沒讀過什麼程式,只是在看書,看了幾百頁 mfc windows程式設計 正好有個機會,老師讓寫個vc程式,就試著寫了。程式的功能是不同地方的access的更新的記錄整合到一台機子上的access中,支援斷網自動連線,用的是socke...
我的第乙個部落格
我是乙個有點脫離時代的年輕人,沒有iphone,不玩微博,沒有崇拜的明星,不是任何人的粉絲。前幾天我的乙個領導告訴我,應該多總結,可以開個微博,把記錄的東西時不時拿出來複習一下,慢慢就會積累出很多財富。所以我開了第乙個部落格,當然遠不如微博那麼新潮。我想感謝我的這位領導,在我的職業生涯中,他是我的領...