我发布这个唯一的原因是因为我实际上相信我的代码性能正在受此代码块的影响,我在其他内部使用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'的某个地方。 –