我正在为我朋友的应用程序创建一个方法,该方法返回车辆的路线。例如,Bus1 有 A-to-B、B-to-C、C-to-D 的路线,最后还有一对,其末端是单独的,就像第一对的 A 一样。
由于每辆车的路线顺序不同,查询返回的结果被打乱了,所以我尝试编写一个方法来对这些组合进行排序以形成路径。像一条链子。我在这里使用字符作为位置和字符串作为路线。
public void MakePath(ref List<string> routes)
{
for (int i = 0; i < routes.Count - 1; i++)
{
for (int j = 0; j < routes.Count; j++)
{
if (routes[i][1] == routes[j][0])
{
var temp = routes[i + 1];
routes[i + 1] = routes[j];
routes[j] = temp;
j = routes.Count;
}
}
}
}
它在某些情况下可以正常工作,也就是说,如果最后一对已经在正确的位置。否则它不起作用,例如
"CD" "AB" "BC"
不适用于此。我知道它不起作用,因为第一个字符串的第二个字符是单独的,因为它应该是最后一对,所以我应该在这种方法中做些什么来照顾最后一对?