以下代码计算两点的最近距离。该部分if(j==0)
对 UsedServices.Count-1 次进行了冗余测试,有没有办法不引入这种冗余?当然,我们可以将 case 与 for 循环分开,我只是在想有没有更优雅的方法来实现这一点。
double[] nearestDistant=new double[UnUsedServices.Count];
for (int i=0;i<UnUsedServices.Count;i++)
{
for (int j=0;j<UsedServices.Count;j++)
{
double distance=GetDistance(UnUsedServices[i].coords,
UsedServices[j].coords);
if (j==0) //Used once and redundant for UsedServices.Count-1 time!
{
nearestDistant[i] = distance;
}
else
{
nearestDistant[i] = Math.Min(nearestDistant[i], distance);
}
}
}