次のコードは、2点で最も近い距離を計算します。パーツif(j==0)
はUsedServices.Count-1回冗長にテストされていますが、この冗長性を導入しない方法はありますか?もちろん、ケースを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);
}
}
}