我發佈這個唯一的原因是因爲我實際上相信我的代碼性能正在受此代碼塊的影響,我在其他內部使用foreach循環。循環內循環性能
我想知道是否有人會建議任何不同的,可以幫助表現或可能指出代碼中的其他缺陷。
public override void DisplayScore()
{
byte MessageLocation = 0;
foreach (var kvp in PlayerScores.OrderByDescending((s => s.Value)))
{
if (MessageLocation == 5)
break;
if (MessageLocation == PlayerScores.Count)
break;
foreach (var player in PlayerList.Values)
{
SendMessage(MessageLocation, "My text");
}
Score++;
}
}
正如你所看到的,它只是從由上至下的字典顯示前5分(在不同的位置),並將它們發送給從另一個字典球員名單。
什麼是發送郵件的內容?這是一封電子郵件嗎? – Sherlock
什麼是'MessageLocation',你在哪裏更新它的值? –
你的代碼看起來很糟糕,但它絕對不會產生任何性能問題。像「foreach」,「break」等簡單結構不會導致性能問題,除非您擁有數百萬條記錄。嘗試分析它,或者至少嘗試調試它。很可能,這個問題在'SendMessage'的某個地方。 –