考慮一下:爲什麼列表<T> .ForEach比標準的foreach更快?
必要的:
//The alphabet from a-z
List<char> letterRange = Enumerable.Range('a', 'z' - 'a' + 1)
.Select(i => (Char)i).ToList(); //97 - 122 + 1 = 26 letters/iterations
標準的foreach:
foreach (var range in letterRange)
{
Console.Write(range + ",");
}
Console.Write("\n");
內置的foreach:
letterRange.ForEach(range => Console.Write(range + ",")); //delegate(char range) works as well
Console.Write("\n");
我試圖定時他們對彼此和內置的foreach速度提高2倍,這看起來很多。
我搜索了一下,但我似乎無法找到任何答案。
此外,關於:In .NET, which loop runs faster, 'for' or 'foreach'?
for (int i = 0; i < letterRange.Count; i++)
{
Console.Write(letterRange[i] + ",");
}
Console.Write("\n");
不採取行動執行比標準的foreach快,據我可以告訴。
我相信你是對的。你能提供一些適當的基準測試結果嗎? – CasperT
相反,創建一個具有足夠的初始容量來保存整個結果並將每個字符串附加到該字符串的stringbuilder。然後輸出所有內容一次,然後停止計時器。 –
啊,我沒有注意到那篇文章的功能列表 .ForEach基準以及。謝謝 –
CasperT