我在Bill Wagners Book中閱讀了「Effective C#」,應該支持更多的聲明式選擇對傳統循環的聲明(對於)。與select的性能
例如:
int[] foo = new int[1000];
for (int i = 0; i < foo.Length; i++)
foo[i] = i * i;
是傳統的命令性代碼,而這將是聲明的Linq代碼:
int[] foo2 = (from i in Enumerable.Range(0, 1000)
select i * i).ToArray();
作爲一個老式的程序員,我更喜歡第一個版本。
問題是如何表現?我想第一個版本也更快。
好的人。相反,如果投票我自己的答案,告訴我我錯在哪裏... – Knasterbax
你的答案是不是很「公平」的選擇。 Enumerable.Range(0,n),ToArray()等會花費額外的時間!使用常量要快得多!查看我的答案,瞭解有關選擇和LINQ功能的詳細信息。 –
@Knasterbax,你爲什麼要用c#?作爲oldschool程序員,你必須更喜歡Assembler。 –