這可能是一個愚蠢的問題,但...是兩個循環比一個循環在C#中重組兩個代碼更昂貴嗎?
重構我的代碼,我想出了一個問題,我找不到任何答案:
假設我有一個包含對象MyDumyObject
String類型的屬性Foo
和Bar
假設我也有MyDumyObject
的集合稱爲MyDumyCollection
是
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "fooooooooo";
obj.Bar = "baaaaaaaar";
}
相當於
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "fooooooooo";
}
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Bar = "baaaaaaaar";
}
?
我在猜測:沒有 但我被C#和C#編譯器以前的工作方式欺騙過,所以我現在小心謹慎對待我的假設,並且我很樂意進行確認或駁斥。
補充問題:
是
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "fooooooooo";
// ....
obj.Foo = "foooooooooooooooooooooooo";
}
相當於
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "fooooooooo";
}
// ....
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "foooooooooooooooooooooooo";
}
?
這真的取決於。根據我的經驗,大多數集合都很小,但如果有數百萬個項目,那麼我寧願重複一次以上。除此之外,我認爲單循環更「*」可讀,而不是更少。 – LukeH 2011-03-16 15:21:20
@LukeH:我完全同意 – BrokenGlass 2011-03-16 15:23:16
這完全回答我的問題,謝謝。我沒有太多的東西(最多大約1000個),所以沒有太大的開銷,並且循環中的代碼相當昂貴,所以我會說在我的情況下,一個或兩個循環沒有什麼區別。我會解決可讀性:) – David 2011-03-16 15:32:07