所以问题是
“创建一个项目,该项目查找两个城市之间的行驶距离。使用两个包含城市名称的下拉列表。将一个列表标记为出发地,另一个列表标记为目的地。使用查找按钮来计算距离。 将距离存储在二维表中。”
通过使用for循环
是否有更好的编码方式?好的,这是下面的代码
private void lookUpButton_Click(object sender, EventArgs e)
{
int [,] miles = { {0,1004, 1753, 2752, 3017,1520, 1507,609, 3115,448},
{1004,0, 921,1780, 2048, 1397, 919,515 , 2176,709},
{ 1753,921, 0,1230, 1399,1343, 517,1435, 2234,1307},
{ 2752,1780,1230,0 , 272,2570, 1732,2251, 1322,2420},
{3017,2048 , 1399,272, 0,2716, 1858,2523, 1278,2646},
{ 1520,1397, 1343,2570, 2716,0, 860,1494, 3447,1057},
{ 1507,919, 517,1732, 1858,860, 0,1307, 2734,1099},
{ 609,515, 1435,2251, 2523,1494, 1307,0, 2820,571},
{ 3155,2176, 2234,1322, 1278,3447, 2734,2820, 0,2887},
{ 448,709, 1307,2420, 2646,1057, 1099,571,2887,0 }
};
//var distance = miles[txtDeparture.SelectedIndex,txtDeparture.SelectedIndex];
// alot of if statments
if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 0))
{
var distance = miles[0, 0];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 1))
{
var distance = miles[0, 1];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 2))
{
var distance = miles[0, 2];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 3))
{
var distance = miles[0, 3];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 4))
{
var distance = miles[0, 4];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 5))
{
var distance = miles[0, 5];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 6))
{
var distance = miles[0, 6];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 7))
{
var distance = miles[0, 7];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 8))
{
var distance = miles[0, 8];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 9))
{
var distance = miles[0, 9];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 0) && (txtDestination.SelectedIndex == 10))
{
var distance = miles[0, 10];
txtDistancebox.Text = distance.ToString();
}
else if ((txtDeparture.SelectedIndex == 1) && (txtDestination.SelectedIndex == 0))
{
var distance = miles[1, 0];
txtDistancebox.Text = distance.ToString();
}
}
答案 0 :(得分:1)
类似这样的东西:
var distance = miles[txtDeparture.SelectedIndex, txtDestination.SelectedIndex];
txtDistancebox.Text = distance.ToString();
答案 1 :(得分:0)
我认为您可以采用一种方法来计算txtDistancebox。 就像...私有int CalculateDistace(int DepartureIndex,int DestinationIndex)