簡體   English   中英

在for循環中使用LINQ或Yield Return怎么樣?

[英]What about using LINQ or Yield Return in for loops?

目前我正在開發2D XNA游戲。 它需要優化,因為多人游戲模式表現不佳。 在代碼中,我們主要使用foreach循環,並且沒有在任何地方使用LINQ或yield return語句。 我知道我們可以在這里贏得一些表現。 因為for循環更快,我想要替換所有foreach循環。

但是,我不能從for循環中的yield return語句中受益,是嗎?
另外,在使用for循環迭代時,LINQ仍然有用嗎?


例如,我有一個1000多個形狀的列表(正方形,三角形,圓形......),我想在某個位置枚舉所有正方形(75%)。 這樣做的最佳方法是什么?
我該怎么用? 數組,列表,for循環,foreach循環,yield return和/或LINQ?

由於這是性能問題,唯一正確的答案是衡量。

通常,直接使用for可能是最快的方法,因為其余的為每次迭代添加更多代碼。 嘗試並衡量自己 - 看看你的情況是否重要以及你最喜歡閱讀哪個版本的代碼。

在添加項目時,您需要進行任何分組或排序,而不是檢索它們。 我這樣說是因為你(我假設)只會添加一次,但正如你所說,你要多次檢索它們。

絕對使用For循環。 如果不是為了性能增益,這將是可以忽略的,您將不會創建枚舉器對象。 所以你不要對GC施加不必要的壓力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM